今天对类成员指针的操作,由于没有在构造函数中初始化为NULL,在使用过程中做了内存释放操作,导致段错误。
简化代码如下:
if(p)
{
delete [] p;
p=NULL;
}
由于没有初始化,p初始值为不确定值的野指针,导致 delete [] p 出现对内存的非法释放!
总结:在构造函数中对成员指针没有初始化的问题属于细节问题,同时也是很低级的问题,也是稍不留意就会犯的问题,也许某些情况下不会出问题,可一旦出问题,会导致整个程序崩溃。
今天对类成员指针的操作,由于没有在构造函数中初始化为NULL,在使用过程中做了内存释放操作,导致段错误。
简化代码如下:
if(p)
{
delete [] p;
p=NULL;
}
由于没有初始化,p初始值为不确定值的野指针,导致 delete [] p 出现对内存的非法释放!
总结:在构造函数中对成员指针没有初始化的问题属于细节问题,同时也是很低级的问题,也是稍不留意就会犯的问题,也许某些情况下不会出问题,可一旦出问题,会导致整个程序崩溃。