我现在很困惑。我想创建一个文件并写入一个之前创建的字符串。但是当下面的代码被执行时,会发生分段错误并且程序终止。c - 打开文件时出现分段错误
FILE* output;
output = fopen("test.txt", "w");
fprintf(output, line);
fclose(output);
该行声明如下。
char* line = NULL;
line = malloc(1048576 + 1);
首先,我认为会出现,因为的malloc的错误,但是这个代码不工作之一:
FILE* output;
output = fopen("test.txt", "w");
fprintf(output, "LBASDHASD");
fclose(output);
我在做什么错?在该行之前运行的代码中,我也使用了文件指针,但文件已关闭。
那么,首先你不检查fopen的结果。 – OldProgrammer
除了分配内容之外,你还会做任何事吗? –
'fprintf(file,line)'的用法也很危险,因为变量'line'可能包含fomat说明符。考虑使用'fprintf(文件,“%s”,行)'。 –