J'ai lu ceci sur wikipediaPourquoi une erreur de segmentation dans le code suivant?
int main(void)
{
char *s = "hello world";
*s = 'H';
}
Lorsque le programme contenant ce code est compilé, la chaîne « Bonjour tout le monde » est placé dans la section du fichier exécutable du programme marqué en lecture seule; lorsqu'il est chargé, le système d'exploitation le place avec d'autres chaînes et des données constantes dans un segment de mémoire en lecture seule. Lorsqu'elle est exécutée, une variable, s, est définie pour pointer sur l'emplacement de la chaîne, et une tentative est faite pour écrire un caractère H dans la mémoire, provoquant une erreur de segmentation **
Je ne sais pas pourquoi la chaîne est placée en lecture seule segment.please quelqu'un pourrait expliquer cela.
duplication possible de [C: différences entre le pointeur et le tableau] (http://stackoverflow.com/questions/1335786/c-differences-between-pointer-and-array) –