为什么以下代码在运行时突然退出而不打印任何输出???
FILE *file;
file=fopen("filename","r");
char *line;
while (fgets(line,1000,file)!=NULL) {
int i=0;
int l=sizeof(line);
printf("%d\n",l);
}
Run Code Online (Sandbox Code Playgroud)
char *line;
Run Code Online (Sandbox Code Playgroud)
这是一个char指针,没有指向任何内存..
fgets(line,1000,file)!=NULL
Run Code Online (Sandbox Code Playgroud)
在这里,您尝试存储从中读取的字符串,而不是file为其分配内存
要做到这fgets()一点,在执行a a malloc()来分配内存之前
line = malloc(1000);
Run Code Online (Sandbox Code Playgroud)
或者,将line变量声明为char数组,就像这样
char line[1000];
Run Code Online (Sandbox Code Playgroud)