ben non, gdb me dit qu'il plante à la 25, 27 ou 29 valeur :*((((
un dépassement de buffer ne fait pas crasher (segment fault) un programme forcément tout de suite. il faut que tu dépasses toute la zone mémoire allouée aux variables de ton programme (quand tu modifie par un pointeur erroné le contenue d'une autre variable, cela ne déclenche pas de fault, mais évidemment cela va déclencher des bugs ...)
en + la détection du dépassement de cette zone par le proc (segfault) se fait lors du passage à la page mémoire suivante, ce qui complique un peu + les choses
bref t'as plus qu'à exécuter pas à pas pour comprendre où ça foire (probablement 24 ou 25)
[^] # segfault n'est pas systématiquement au même endroit
Posté par free2.org . En réponse au journal pb de pôinteur en pascal. Évalué à 2.
ben non, gdb me dit qu'il plante à la 25, 27 ou 29 valeur :*((((
un dépassement de buffer ne fait pas crasher (segment fault) un programme forcément tout de suite. il faut que tu dépasses toute la zone mémoire allouée aux variables de ton programme (quand tu modifie par un pointeur erroné le contenue d'une autre variable, cela ne déclenche pas de fault, mais évidemment cela va déclencher des bugs ...)
en + la détection du dépassement de cette zone par le proc (segfault) se fait lors du passage à la page mémoire suivante, ce qui complique un peu + les choses
bref t'as plus qu'à exécuter pas à pas pour comprendre où ça foire (probablement 24 ou 25)