返回信息流构造函数中有一句是这样的:
this->element = new char(this->length);
就想着在析构函数中用delete函数释放掉申请的内存,于是就写了这一句
delete this->element;
可是就是在这一句上出错了,显示引发了一个中断。跳出了一个对话框。编译环境是VS2013,请问这怎么回事啊?
这是一条镜像帖。来源:北邮人论坛 / cpp / #95398同步于 2017/5/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于delete的问题
dbyqs
2017/5/29镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 dbyqs 的大作中提到: 】
: 构造函数中有一句是这样的:
: this->element = new char(this->length);
: 就想着在析构函数中用delete函数释放掉申请的内存,于是就写了这一句
: ...................
是不是程序中修改了element
刚试过了,不行啊。
貌似原因是因为对element指向的内存进行了操作,导致delete出现问题。this->element = new char(this->length);delete this->element;这样是我没有问题的。但是中间有了操作就不行了。
等等,你的写法可能有问题。
'''
this->element = new char(this->length);
'''
和
'''
this->element = new char[this->length];
'''
不一样。
可能你是想写下面的但写成了上面那种?
就我对你帖子说的情况的理解是,你产生了一个空指针 this->element,所以我才建议你先将原来的指针指向 null,既然还没有解决问题,那就像别人说的,把代码贴出来。
【 在 dbyqs 的大作中提到: 】
: 刚试过了,不行啊。
: 貌似原因是因为对element指向的内存进行了操作,导致delete出现问题。this->element = new char(this->length);delete this->element;这样是我没有问题的。但是中间有了操作就不行了。
有道理哎,怪不得一开始读着有点别扭
【 在 bond1993 的大作中提到: 】
: 等等,你的写法可能有问题。
: '''
: this->element = new char(this->length);