Ouais, et je suppose que tu as déclaré ta chaine de la façon suivante :
Code :
- char * chaine_a_encoder = "bla bla";
|
Parce que si tu l'avais déclarée comme ceci, ça aurait fonctionné :
Code :
- char chaine_a_encoder[] = "bla bla";
|
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.