我在类内部有一个const std::vector<double> *vecPtr
。我想正确释放内存,那么我的destructor
应该是什么样子?删除指向矢量的指针
我试过~ClassA() { delete[] vecPtr; }
,但我得到一个错误
*** Error in `./test': free(): invalid pointer: 0x00007fff8c643a98 ***
Aborted (core dumped)
是否delete[]
工作只有矢量充满指针?
编辑:
我用vecPtr
这样的:vecPtr = &vec;
如果我只使用delete
我得到*** Error in ./test': double free or corruption (fasttop): 0x00000000008fcb20 ***
指向矢量的指针几乎总是一个错误。尝试使用矢量。 – 2014-11-05 10:28:49
这是为什么,我想避免复制 – TheGuyWithStreetCred 2014-11-05 10:33:25
你不能避免通过在类成员前面粘贴'*'来进行复制。 – 2014-11-05 10:42:14