for (int i =0; i <count-2; i++) { fscanf(fp,"%d %c %f %c %f %c %s",&lithdata[i].num,&str,&lithdata[i].stdep,&str1,&lithdata[i].enddep,&str2,&lithdata[i].sand); sta[i] = lithdata[i].stdep; end[i] = lithdata[i].enddep; }
lithdata[i].sand是一个存文字的数组,本人想定义一个字符串数组。把lithdata[i].sand里的文字存放到这个字符串数组里,然后可以调用每个字符串。
char *p;
p[i]=ithdata[i].sand;
这样定义不对啊,该怎么定义?
解决方案
10
lithdata[i].sand中sand本身也是一个数组?假如是的话,那么p应该定义为二重指针,这样p[i]才是一个指针,才能将sand直接赋值给p[i]
30
p=(char**)malloc(n*sizeof(char*)); //n是你指针的数量