segmentation fault в программе c

только для тестирования, я создал следующий код:

#include<stdio.h>

int main(){
    char *p = "Hello world";
    *(p+1) = 'l';
    printf("%s", p);
    return 0;
}

Но когда я запустил это через свой компилятор "gcc" под Ubuntu 10.04, я получил:

Segmentation fault

Кто-нибудь может объяснить вот почему это произошло.

#include<stdio.h>
#include<stdlib.h>

int main(){
    char *p = malloc(sizeof(char)*100);
    p = "Hello world";
    *(p+1) = 'l';
    printf("%s", p);
    free(p);
    return 0;
}

это также вызывает ошибку сегментации Заранее благодарен

6
задан gpoo 19 June 2012 в 01:04
поделиться