Char * p и scanf

Я пытался найти причину, по которой следующий код дает сбой, но не нашел. Так что, пожалуйста, извините за мое незнание и дайте мне знать, что здесь происходит.

#include<stdio.h>
int main(void){
char* p="Hi, this is not going to work";
scanf("%s",p);
return 0;
}

Насколько я понял, я создал указатель p на непрерывную область в памяти размером 29 + 1 (для \ 0). Почему я не могу использовать scanf, чтобы изменить его содержимое?

PS Поправьте меня, пожалуйста, Если я что-то не так сказал про char *.

6
задан Fingolfin 4 February 2011 в 16:30
поделиться