这样的话,我可以正常地向pointer指针数组里写入字符串。
但现在就无法把这个指针数组里地字符串写到文件里,我发现也无法正常的用printf输出到屏幕上
你没有为指针分配内存
在for循环开头加上
pointer[j] = new char[100];
char *pointer[LENGTH];
之后加上
for(i=0;i<10;i++)
pointer[i]=malloc(LENGTH);
(后面记得释放(
for(i=0;i<10;i++)free(pointer[i);
))
朋友,你定义了长200的指针数组,是不是意思是想储存200条字符串。
如果是,那么你的每一个字符串是有一个长度的,而c不能自动帮你把pointer[i]设置为输入字符串的长度
你需要为pointer[i]设置一个长度。
也就是其他人回答的那样用malloc函数为pointer[i]动态分配
之后才能输入
//include malloc头文件
int len_string=10;//假如每一个字符串长短小于10
for(int i=0;i<LENGTH;i++){
pointer[i]=malloc(sizeof(char)*len_string);
}
//进行你的操作
for(int i=0;i<LENGTH;i++){//释放分配的空间
free(pointer[i]);
}
还有你第一张图并不能证明你为指针输入了data。建议你在scanf之后用printf检查是否正确输入,然后再进行后面的文件读写