C语言无法读取出指针数组里的字符串

图片说明


这样的话,我可以正常地向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检查是否正确输入,然后再进行后面的文件读写