しつもん。
char *p = "Hello, C";
printf("%s\n", p);
この場合、
pの指す値("Hello, C")はどこにあるのですか。
そしてこいつの内容は"Hello, C"であるといつまで保証されていますか。

ぼくにはわかりません。