So habe ich ein seltsames Problem. Wenn ich eine int
deklariere, die später nicht verwendet wird, bekomme ich einen Segmentierungsfehler. Wenn ich die Deklaration entferne, läuft der Code einwandfrei. Wie kann das sein?Segmentierungsfehler mit nicht verwendeter Variable
FILE* ptr = fopen("prueba.txt", "r");
int x;
char* a;
int y = 0; //this cause the seg fault.
do{
while (fscanf(ptr, "%i", &x)!=-1){
fscanf(ptr, "%s", a);
printf("%i %s ",x, a);
}
fseek(ptr, 0, SEEK_SET);
}while(1);
fclose(ptr);
}
Aber selbst wenn ich es verwenden, sagen mit y++;
nach printf
Ich bin immer noch einen Segmentierungsfehler bekommen.
fscanf (ptr, "% s", a); Das sieht nach dem Problem aus. a ist nicht malloced – CIsForCookies
'fscanf (ptr,"% s ", a);' überschreibt zufälligen Speicher. Indem Sie eine Variable hinzufügen, ändern Sie zufällig den zufälligen Speicher, auf den sie stampfen. – Art
@Art, schade, kurze Antworten werden automatisch in Kommentare umgewandelt. Wenn Sie Ihre Antwort im Bereich "Antworten" sehen können, bleibt diese Frage für immer im Bereich "Unbeantwortet". – CDahn