一个数组没有确定是否已经分配过内存 ,有两种方法释放内存而不报错
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();