真是老了,竟然错在这里

本文记录了一个因未正确初始化指针变量导致的程序错误案例。作者在构造函数中忽略了对某个指针变量进行空初始化,结果在析构函数中尝试释放未被分配的内存时引发程序崩溃。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调试了一天,竟然错在这里:一个类变量为指针类型,在构造函数里把其他的类的指针变量都初始化为空,可就是漏了一个没初始化为空。结果,在析构函数里这样写:

if(该指针变量!=NULL){

   delete [] 该指针;

  该指针=NULL;

}

这应该都是对的,但是由于我对该指针在一开始没初始化,中间也没用过(这是冗余了,有点),所以析构类时,程序发现该指针不为空,就进入了if语句,结果搞得老是报 msvcr90.dll:读取。。。位置冲突,调试进入了dbgheap文件里德校验数组的过程里,然后也无法再调试了。。。

之前还以为是其他具体的功能函数里有问题,果竟然就是出在基本类view中,哎,一年多没怎么写程序了,看来真得好好熟练一下啦。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值