我在類內部有一個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