addition de caracteres en C ... - C - Programmation
Marsh Posté le 16-11-2009 à 22:51:47
Ouais, et je suppose que tu as déclaré ta chaine de la façon suivante :
Code :
|
Parce que si tu l'avais déclarée comme ceci, ça aurait fonctionné :
Code :
|
Ha, ha, c'est amusant le C, hein ? En fait les chaines statiques (quand elles ne servent de raccourci pour à initialiser un tableau), sont marquées comme lecture seule. En général le compilo optimise en regroupant les chaines semblables, en faisant pointer sur le même bloc mémoire. Donc si tu modifiais une telle chaine à un endroit, il y aurait des effets de bords à d'autres endroits (soit dans 99% des cas, un plantage). Donc vaut mieux se prendre un SEG FAULT le plus tôt possible.
Marsh Posté le 16-11-2009 à 23:06:15
oki merci de l'explication,je ne pensais pas que c'etait aussi tordu que ca
Marsh Posté le 16-11-2009 à 22:37:51
bonjour !
j'ai un petit probleme suite a un td pas bien compliqué sur le cryptage d'une chaine de caractere (cryptage de base hein,c'etait juste pour jouer un peu avec les char*)
fin bref,je ne comprend pas pourquoi ca :
chaine_a_encoder[i] += clef[j]
ne fonctionne pas (apres avoir effectué un sizeof sur l'addition,ca me renvoit 4 octets alors qu'un char vaut 1)
et que ca :
temp[i]= chaine_a_encoder[i]+clef[j]
fonctionne (avec temp un type string )
la premiere solution me renvoit systematiquement un bon segmentation fault !
pourquoi ne peut on pas directement additionner les codes ASCII dans la chaine a encoder ?
Message édité par dindon_sauvage le 16-11-2009 à 22:51:30