怎么知道一个指针指向的内存已经返还了*存储

如何知道一个指针指向的内存已经返还了*存储?
int   *   p   =   new   int[10];
如何判断p指向的内存块已经返还了*存储??假设某人将其释放(delete)又没将其置为NULL,程序有本事知道吗?

------解决方案--------------------
int *p = new int[ 10 ] ;
if( p == NULL )
cout < < "Success! " < < endl ;
else
cout < < "Error! " < < endl ;
------解决方案--------------------
没办法只能在写程序的时候规定 非NULL的都是合法的
NULL表示没有使用
------解决方案--------------------
int *p = new int[ 10 ] ;
if( p == NULL )
cout < < "Success! " < < endl ;
else
cout < < "Error! " < < endl ;
------解决方案--------------------
if( p != NULL )
------解决方案--------------------
如果delete后没有设置为NULL,p将指向不合法的内存区域,从而成为野指针,程序自己是无法知道的.请参考
http://zhidao.baidu.com/question/24347540.html
------解决方案--------------------
靠人来确保的。
------解决方案--------------------
delete是不会出异常的
------解决方案--------------------
不会是移动了指针吧
------解决方案--------------------
与http://community.csdn.net/Expert/topic/5542/5542035.xml?temp=.615597类似的问题
------解决方案--------------------
to hurryboylqs() :我调试时错误就指向这句(工具:VC6.0),依你经验应该是什么原因呢?
可能是你移动了指针p