C言語なら、俺に聞け! lt;50gt;
■ このスレッドは過去ログ倉庫に格納されています
0436429
NGNGあ、そらそうですよね。
たとえば、
void foo(){
char str[] = "Hello, C";
char *p = "Hello, C";
(何らかの処理。p,strの指す内容の書き換えは行わない)
printf("%s\n", str);
printf("%s\n", p);
}
という場合、配列strの内容については、
こちらが明示的に書き換える処理を行わない限り"Hello, C"
でありつづけることが保証されているように思えます。
といいつつ、本当はよく知りません。
pの指す内容については明示的に領域を確保していませんよね。
この場合、どのように扱われるのでしょうか。
一時的にメモリのどこかに確保されるとは思うのですが、
そこから先どういう扱われ方をするのかわかりません。
その内容はいつ破壊されていてもおかしくない。ということなのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています