C++ segmentation fault sur une list stl - comment trouver le probleme?

Comme quoi : j’avais raison, c’était bien ailleurs dans ton programme :slight_smile:

Un segfault n’apparaît que si tu tente d’écrire dans une zone qui ne t’appartiens pas, qui n’est pas allouée.

Si tu as par exemple une taille max allouable de 5Mib, et que tu tapes à l’adresse 5Mib+4 ça plantera, car tu cherches à écrire en dehors de ton programme.

Par contre, là ce que tu as fais, c’est écrire dans ton programme, et tu as écris par dessus les informations du tas, ce qui fait que ça plantait.

ok…
pas facile de trouver ce genre d’erreur alors… dommage que valgrind n’ai pas marché, il est pourtant fait pour ca… je sais pas si il y en a d’autre…

en tout cas merci pour l’aide !

C’est normal que cette erreur ne soit pas détecter, en C c’est au programmeur de gérer l’allocation de la mémoire => Il est possible d’avoir un programme qui fonctionne de temps en temps selon comment la memoire est utilisée, sa taille etc…

J’ai pu le constater lors d’un projet où mon programme fonctionnait sur certain pc et pas d’autres etc…

=> Y avait une erreur de manip dans l’allocation de la mémoire

Dans le cas de valgrind, je dirais plutôt que comme tu peux avoir ton propre allocateur, valgrind ne peut pas vraiment t’indiquer ce qui est juste ou non dans les accès mémoire.