L'ensemble complet du code qui englobe l'extrait suivant est compilé sans erreur. Cependant, lorsque je lance l'exécutable, une erreur "Segmentation fault (core dumped)" s'affiche lorsque la ligne 401 est exécutée.C++ fgets Erreur de segmentation (core dumped)
J'ai fait quelques débogage et je sais que le nom du fichier « réel » est de s'appeler en ligne 397 et je l'ai confirmé que « cur_step_buff » est 4096.
Aussi, s'il vous plaît laissez-moi savoir si plus de code est nécessaire pour aider avec ce problème.
Voici le code:
393: FILE *fd;
394: char fd_name[512];
395: strcpy(fd_name,npb_list[freq][app][thread].file_name);
396: fopen(fd_name, "r");
397: cout << "fd_name = " << fd_name << "\n";
398: char cur_step_buff[4096];
399: cout << sizeof(cur_step_buff) << "\n";
400: cout << “location line 400\n”;
401: fgets (cur_step_buff, sizeof cur_step_buff, fd);
402: int isEnd=0;
403: int last_step=0;
exactement, c'est pourquoi je vote pour que cela se termine. Rien à offrir aux futurs lecteurs. – gsamaras
le "fd" à la fin de la ligne 401 devrait-il être "fd_name"? – chadbyoung
@chadbyoung: No. –