c++类中new的数组不需要delete吗?为什么写出析构函数然后delete会出现runtime error,不写delete反而不报错
c++类中new的数组不需要delete吗?为什么写出析构函数然后delete会出现runtime error,不写delete反而不报错
c++类中new的数组不需要delete吗?为什么写出析构函数然后delete会出现runtime error,不写delete反而不报错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
7条回答 默认 最新
关注 你的代码不完整,我指出两个问题。
1.你的v初始化应该放到构造函数里或者init函数里,如果你放到成员变量初始化里,实际上是在额外的浪费内存空间,因为你在构造的时候先构造成员变量,你的row和col是不是相当于重新赋值,给v又要重新分配内存,这不是良好的编程习惯。
2.某个操作有浅拷贝或者对v进行了double free双重释放也是容易造成delete崩溃,所以如果发生浅拷贝导致v指向了其他内存,而这个内存在栈空间分配,那么他会随着栈空间被释放而释放,但你delete释放栈空间内存就有问题了,你只能释放堆内存。如果v浅拷贝指向其他堆内存,当这块堆内存释放后,你再在构造内存释放v就造成了double free了。
望采纳本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 1
悬赏问题
- ¥30 STM32 INMP441无法读取数据
- ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
- ¥15 用visualstudio2022创建vue项目后无法启动
- ¥15 x趋于0时tanx-sinx极限可以拆开算吗
- ¥500 把面具戴到人脸上,请大家贡献智慧
- ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
- ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
- ¥30 c#打开word开启修订并实时显示批注
- ¥15 如何解决ldsc的这条报错/index error
- ¥15 VS2022+WDK驱动开发环境