char *str; //single pointer
あなたは1を格納することができます文字列。
array of strings
を保存するために、あなたはこのように宣言する場合は、これはstatic宣言
あるようにメモリを割り当てる必要はありません
two dimensional character array
か、他array of character pointers
か、他double pointer
char str[10][50]; //two dimensional character array
が必要
あなたは各ポインタあなたは数にメモリを割り当てる必要があります。ここ
for(i=0;i<10;i++)
str[i]=malloc(SIZE);
char **str; //double pointer
にメモリを割り当てるために、配列を介してポインタ
ループ用のメモリを割り当てる必要が
char *str[10]; //array of pointers
ここ
各ポインタにメモリを割り当てます。配列による
str=malloc(sizeof(char *)*10);
そしてループは、あなたが完全に間違ってそれをやっている各ポインタ
for(i=0;i<10;i++)
str[i]=malloc(SIZE);
これは、1文字のための 'malloc'スペースがあり、文字列全体を' char'型の左辺値に代入しようとしたために機能しません。 –
お勧めの読書:[Cでmallocを使用する必要がありますか?](http://stackoverflow.com/a/1963812/2455888) – haccks