Выполнение printf() и Segmentation Fault

#include<stdio.h>

int main()
{
    char *name = "Vikram";
    printf("%s",name);
    name[1]='s';
    printf("%s",name);
    return 0;
}

На терминале не выводится никакого результата, просто получаю segmentation fault. Но когда я запускаю его в GDB, я получаю следующее -

Program received signal SIGSEGV, Segmentation fault.
0x0000000000400525 in main () at seg2.c:7
7       name[1]='s';
(gdb) 

Это означает, что программа получает ошибку SEG на 7-й строке (очевидно, я не могу писать на постоянном массиве символов). Тогда почему printf() строки номер 6 не выполняется?

22
задан Richard J. Ross III 27 February 2012 в 17:59
поделиться