9

次のようなポインターがある場合:

int *test = new int;

testそして、次のように指す別のポインターを作成します。

int *test2 = test;

次に削除しtest2ます:

delete test2;

それはメモリも削除するということですかtest、それとも呼び出す必要がdelete testありますか?

4

2 に答える 2

16

はい、メモリは削除された両方のポインタが同じメモリを指しているため、解放されます。

さらに、testダングリング ポインターになり(ようにtest2)、逆参照すると未定義の動作が発生します。

于 2012-08-07T22:58:56.023 に答える