C ++コードのこれらの行では、次のようになります。
int * p = new int(33);
delete(p);
*p = 13;
cout << *p << endl;
出力は13です。
Pは最初にヒープ上のアドレスを指し、次にdeleteキーワードを使用して、pに割り当てられたメモリアドレスの割り当てを解除しますが、メモリアドレスに23の値を割り当てることができます。これは、pが「int * p = new int(33)」の後に指しているヒープ上のアドレスと同じですか、それともpがdelete(p)を使用した後のスタック上のアドレスを指しているのでしょうか。