重複の可能性:
複数のポインターを安全に削除する方法
以下のコードのように:
#include <iostream>
using namespace std;
int main(int argc, _TCHAR* argv[])
{
int *p, *q;
q = new int;
p = q;
delete q;
q = NULL;
cout << p << " " <<q << endl;
return 0;
}
p
を指すq
。q
とq
=を削除するとNULL
、p
まだ古いアドレスを指しています。誰かが自動的にp
指摘する方法を持っていますか? q
NULL
プログラム内に同じアドレスを指すポインターがたくさんあり、それらを指すようにすることができない場合NULL
、問題が発生するためです。