C'est un coup de bol dû à un effet de bord ailleurs ce qui fait que derrière la chaîne que tu as écrite, il y a des 0. Mais ne pas mettre les 0 à la fin, bravo, tu as fait ton premier bug permettant une attaque de sécurité par buffer overflow.
Et ça ne sera pas ton dernier, crois-moi, l'oubli ou l'écrasement du 0 terminal compte pour 50% des bugs en C. Si olivthill ne te l'avait pas signalé, tu te serais coltiné une belle séance de débogage pas piquée des hannetons (ce qui est formateur en soi).
edit: ah ben c'est gilou qui se la coltine, apparemment
bref, si tu as des comportements qui semblent aléatoires, tu peux déjà chercher du coté de:
a) des variables ou tableaux non initialisés
b) des écrasements mémoire dûs à l'oubli de 0 ou d'un mauvais calcul de longueur.
Déjà, débugge ton programme avant d'envoyer des chaînes incorrectes à ton afficheur, il se peut que ça soit une des raisons du comportement aléatoire.
Si tu es sous Linux, je te conseille très fortement d'utiliser valgrind, qui te détectera des erreurs dans ton programme même si tu as l'impression qu'il fonctionne bien. Tant que valgrind te pête une erreur, c'est qu'il y a un bug caché quelque part. Malheureusement, valgrind ne fonctionne que pour des programmes linux, mais c'est déjà ça.
Message édité par el muchacho le 06-11-2011 à 09:40:57
---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien