>>char *data[5];
>
各要素に領域が確保されていないため、コピーしようにもコピー先の
アドレスがないから上手くいかないのですね。
以下の様な感じでしょうか。
malloc関数で領域を確保してみました。一応、動きました。
#include <stdio.h>
#include <string.h>
main()
{
char *data[5];
char str[64];
int i=5 ;
for (i=0; i<5; i++) {
printf("文字列を入力してください:");
scanf("%s",str);
data[i]=malloc(64);
strcpy(data[i],str);
}
for (i=0 ; i<5; i++) {
printf("data[%d] = %s\n",i,data[i]);
free(data[i]);
}
}
mallocで領域を確保していますが、例えば、別の変数のアドレスを設定
することもできるのでしょうか。
main()
char *data[5];
char wk1[10];
char wk2[10];
char wk3[30];
char wk4[64];
cahr wk5[64];
data[0] = wk1;
data[1] = wk2;
data[2] = wk3;
data[3] = wk4;
data[4] = wk5;
}
|