Bug étrange en C avec des pointeurs sous Linux
Bug étrange en C avec des pointeurs sous Linux
Help ! Mon programme segfault aléatoirement quand je free un double pointeur. Sous Windows ça marche, sous Ubuntu ça plante. Code : 'int** tab = malloc(100*sizeof(int*));' puis plus tard free(tab)...
Re: Bug étrange en C avec des pointeurs sous Linux
Tu initialises bien tous les int* après le premier malloc ? Linux est moins tolérant que Windows sur l'accès à de la mémoire non initialisée.
Re: Bug étrange en C avec des pointeurs sous Linux
Non justement, j'alloue que les sous-tableaux dont j'ai besoin. C'est ça le problème ?
Re: Bug étrange en C avec des pointeurs sous Linux
Exact ! Quand tu free, glibc vérifie plus de choses sous Linux. Soit tu initialises tout à NULL, soit utilise calloc au lieu de malloc pour le tableau principal.
Re: Bug étrange en C avec des pointeurs sous Linux
Le calloc a réglé le problème ! Merci beaucoup. Je me coucherai moins bête ce soir.
Re: Bug étrange en C avec des pointeurs sous Linux
Petit + : valgrind est ton ami pour ce genre de soucis. Ça t'aurait direct pointé l'erreur.
Sauvegardez, bon sang