我現在很困惑。我想創建一個文件並寫入一個之前創建的字符串。但是當下面的代碼被執行時,會發生分段錯誤並且程序終止。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」,行)'。 –