2016-04-16 8 views
0

Dies ist mein C-Programm und ich verwende G ++ Compiler. Nach der Kompilierung, wenn ich den Code ausführen, gibt es einen Segmentation fault (core dumped) Fehler:Segmentierungsfehler Core Dump Fehler

#include <stdio.h> 
#include <stdlib.h> 

int main(){ 

    FILE *fp; 

    fopen("sample.txt", "w+"); 

    fprintf(fp, "%s %s %s %d", "We", "are", "in", 2016); 

    fclose(fp); 

    return 0; 
} 

Bitte führen.

+3

Sie verwenden 'fp', ohne es zu initialisieren. Das ist Ursache für undefiniertes Verhalten. Verwende 'fp = fopen (" sample.txt "," w + ");'. –

+0

Vielen Dank @R Sahu – ramnarayanan

+0

Bitte löschen Sie Ihren Beitrag. Es ist unwahrscheinlich, dass es für andere hilfreich ist. –

Antwort

2

Gerade herausgefunden: Ordnen Sie einfach die Datei öffnen Funktion zu meinem Dateideskriptor.

fp = fopen("sample.txt", "w+"); 
0

fprintf druckt in die vom Dateizeiger fp angegebene Datei. In diesem Fall wird fp nur deklariert und niemals einem Wert zugewiesen, daher ist null. Wenn fprintf den Null-Zeiger verwendet, verursacht es einen Seg-Fehler. Sie sollten fp = fopen (...) gemacht haben, damit der Zeiger nicht null ist.

+1

"daher ist null" - es ist * unbestimmt * – WhozCraig

+0

Sie sind völlig richtig. Aus irgendeinem Grund dachte ich, fp sei global – Philip

Verwandte Themen