

c++类中new的数组不需要delete吗?为什么写出析构函数然后delete会出现runtime error,不写delete反而不报错


关注你的代码不完整,我指出两个问题。
1.你的v初始化应该放到构造函数里或者init函数里,如果你放到成员变量初始化里,实际上是在额外的浪费内存空间,因为你在构造的时候先构造成员变量,你的row和col是不是相当于重新赋值,给v又要重新分配内存,这不是良好的编程习惯。
2.某个操作有浅拷贝或者对v进行了double free双重释放也是容易造成delete崩溃,所以如果发生浅拷贝导致v指向了其他内存,而这个内存在栈空间分配,那么他会随着栈空间被释放而释放,但你delete释放栈空间内存就有问题了,你只能释放堆内存。如果v浅拷贝指向其他堆内存,当这块堆内存释放后,你再在构造内存释放v就造成了double free了。
望采纳