この関数を考えてみましょう:
void useless() {
char data[] = "aaa";
}
ここで学んだことから、"aaa"リテラルはプログラムの最後まで生き続けます。ただし、data[](リテラルで初期化された)はローカルであるため、関数の最後までしか存続しません。
メモリがコピーされるので、プログラムはリテラルに 4B、リテラルへのポインタとリテラルのポインタに 4Bバイトを必要dataとします - これは本当ですか?sizeof(size_t)datasizeof(size_t)
リテラルに静的な保存期間がある場合、2 番目の呼び出しによってローカル リテラルに新しいメモリが割り当てられない - これは本当ですか?