C : c pas possible

GUTENFRIDEN -  
 geronimhurl -
hello tous

J'ai un petit prog(env 1000 lignes) quiest phase de dvt.
Il ya donc un certain d'affichage de controle.
Tout marche bien de la balle.
Lorske je veux enlever ces affichages, cela produit des fautes de segmentation.
Je suis oblige de faire des printf(""); a deux endroits et plus problematiques
je dois faire uhn printf("\n"); (je veux surtout pas passer de ligne!!) pour eviter une faute de seg.

Je suis un programmeur debutant et je croyais betement que afficher une chaiune de char, sa chger rien a un prog
ALors maintenant je me demande si je suis pas fait pour etre bucheron :)

GGGGGUUUUTEEEEEEEEEMMMMMMMM

2 réponses

Coyote
 
Plusieurs possibilités :
tu utilises des fonctions qui récupère la mémoire du buffer clavier ou autre tel que getchar() et du coup lorsque tu enlèves tes chaînes de caractères, la fonction getchar() récupère tout sauf ce qui est dans le buffer d'où l'erreur.

En c, une chaîne de caractères est en fait un tableau de caractères terminé par le caractère NULL ou \0
Donc tout dépend du code que tu utilises pour gérer ters chaînes de caractères, si tu ne tiens pas compte de NULL, tu peux avoir des chevauchement de plage mémoire d'où l'erreur.

Ex : "moi" fait en fait 4 caractères en C
0
leprechaun Messages postés 265 Statut Membre 10
 
Pour les msg de deboggage je te conseil d'utiliser 'puts( )'.

Un jour je serais Castor a la place de Castor!!!
Good Luck
0
geronimhurl
 
Il se peut aussi que tu ais créé un buffer du genre :
char buffer[128];
et que tu dépasses sa capacité de stockage, ce qui fait que tu as un buffer overflow qui fait tout péter.

Fait bien attention à tes indices de tableaux et à tes structures.
0