[問題]請問C語言二為動態陣列輸入字串

作者: hunkchen2000 (我沒錢)   2016-09-25 13:20:05
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
char k[10];
char **ptr = (char **) malloc(2 * sizeof(char *));
for (i=0;i<3;i++)
{
ptr[i]=(char*)malloc(3 * sizeof(char));
}
//
作者: ilikekotomi (Young)   2016-09-25 13:35:00
printf用了%s應該是會印到陣列出現\0雖然不知道原本用途 但改用%c應該比較符合你的邏輯
作者: EdisonX (卡卡獸)   2016-09-25 13:40:00
應該會先 crash ?? 第一個 for 應該到 2
作者: ilikekotomi (Young)   2016-09-25 13:41:00
搞錯你意思 原來是要6個字串由於每次你都是存到k這個陣列 所以會錯掉如果你印是要用陣列的話卻時要3維沒錯然後prt[i][j] = (char*)malloc(10*sizeof(char))將ptr[i][j]初始化後 用strcpy從k複製到ptr[i][j]但建議你不要用到那麼多 或是改用C++的string應該是沒什麼必要弄成2*3陣列的字串才對建議你進一步釐清pointer和字串的觀念來寫會比較好
作者: pttworld (批踢踢世界)   2016-09-25 14:23:00
1000和3的關係是。。?

Links booklink

Contact Us: admin [ a t ] ucptt.com