Salut,
Je n'ai pas réussi à reproduire ce problème...
Il peut arriver qu'un programme plante à un endroit à cause d'une
erreur n'ayant pas entrainé de plantage à un tout autre endroit...
Le bug se produit même dans un tout petit programme ????
Quand on a un bug, il y a un truc que l'on a tendance à oublier qui s'appelle un débogueur.
Par exemple, il y a ddd.
Il faut compiler avec l'option -g sous gcc.
Puis ddd NomDeLExecutable
Si tu as ddd bien sûr...
Tu pourras espionner tes variables.
Tu peux poser des points d'arrêt en cliquant à droite du code, puis le bouton break.
Un double clique sur le breakpoint permet de sélectionner le nombre de
fois où il est ignoré : pratique pour arriver rapidement à 4096.

Bon courage.