判断有效指针、数组是否有效,在进行释放内存;

一个数组没有确定是否已经分配过内存 ,有两种方法释放内存而不报错

 

1 如果 pDispBlu是全局变量,可以在构造函数里面对 pDispBlu初始化 pDispBlu = NULL;这样就不用判断pDispBlu 地址是否合法,只判断

 

if( pDispBlu)

 

{ delete pDispBlu;

 

 pDispBlu = NULL;

 

}

 

 

 

2.一个数组没有确定是否已经分配过内存,如果以前都没有分配过内存,如果用if(pDispBlu)的话,条件可能成立,这个样子释放内存的话就出现错误了,。这是用IsBadReadPtr 判断内存地址是否合法,就知道是否给数组分配内存了。

if ( ! IsBadReadPtr( pDispBlu ,sizeof( pDispBlu ) ) )

{
delete []pDispBlu;
pDispBlu = NULL;
}

类似的还有

IsBadStringPtr();

 

posted @ 2013-08-14 10:41  友琼  阅读(778)  评论(0编辑  收藏  举报