Je suis donc confronté à un problème étrange. Lorsque je déclare un int
qui n'est pas utilisé par la suite, j'obtiens une erreur de segmentation. Lorsque je supprime la déclaration, le code fonctionne parfaitement. Comment se peut-il?Erreur de segmentation impliquant une variable inutilisée
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);
}
Mais même si je l'utilise, dire avec y++;
, après printf
je reçois toujours une erreur de segmentation.
fscanf (ptr, "% s", a); Cela ressemble au problème. a n'est pas mallocé – CIsForCookies
'fscanf (ptr,"% s ", a);' écrase la mémoire aléatoire. En ajoutant une variable, vous changez la mémoire aléatoire sur laquelle elle se trouve. – Art
@Art, trop mauvaises réponses courtes sont permises aux commentaires. Si vous pouvez obtenir votre réponse dans la section Réponses, cela évitera que cette question apparaisse dans la section "Sans réponse" pour toujours. – CDahn