2010-09-16 7 views
4

Possible en double:
Why does this Seg Fault?Modification de caractères individuels d'un tableau de caractères en C

Bonjour, J'ai un

char* str = "blah"; 

Et je veux maintenant changer de les caractères à quelque chose d'autre, disons un numéro 3. Je suis en train de le faire avec:

str[2] = '3'; 

Cependant, je reçois un défaut seg sur cette ligne de code. Une idée pourquoi?

+0

Ceci est une question en double. Voir [ici] (http://stackoverflow.com/questions/3638851/why-does-this-seg-fault). – linuxuser27

Répondre

3

Ce n'est pas un tableau de caractères. C'est un pointeur sur char initialisé avec une chaîne de caractères constante. Les constantes de chaîne ne peuvent pas être modifiées, mais si vous en faites un tableau de char plutôt qu'un pointeur char, cela fonctionnera. par exemple.

char str[] = "blah"; 
str[2] = '3'; 
+0

Bien que cela ait été utile pour trouver mon chemin vers la solution, le lien vers la question en double a expliqué pourquoi je me suis heurté au problème, et donc je l'ai choisi comme la meilleure réponse. Néanmoins, j'apprécie l'aide, et voté votre réponse. – finiteloop

Questions connexes