0
char* str = "hello myname is Stack";
delete[] str;

プログラムがクラッシュするのはなぜですか? char* str はスタックに割り当てられていますか?

4

3 に答える 3

5

delete[]で割り当てていないものには違法だからですnew[]。それでおしまい。

いいえ、スタック上の何かを指すstrのではなく、文字列リテラルを指します。これは不変であり、通常は読み取り専用セグメントに存在します。

于 2013-04-05T19:54:26.313 に答える