我想爲我正在採用的類做一個Phonehandler系統,該任務指定我們使用指針指向Phonehandler類中的Phone對象的指針,用於存儲電話的陣列從一開始就有兩個電話的大小,並且可以稍後進行擴展。 (?)我的相關代碼如下:Memoryleak指針指針,C++
PhoneHandler.h
Phone **phones;
PhoneHandler.cpp(構造函數)
PhoneHandler::PhoneHandler()
{
this->phones = new Phone*;
*phones = new Phone[2];
}
我的代碼包含了一些比這更多的東西,但我沒有在任何其他地方寫「新」,所以memoryleaks被分配在構造函數中。我做了一個析構函數如下:
PhoneHandler.cpp(析構函數)
PhoneHandler::~PhoneHandler()
{
delete[] phones;
delete phones
}
但它崩潰在析構函數中的第一行。所以我需要幫助以太構造函數或析構函數,也許兩者。如果有必要,隨意問我更多的代碼,但我認爲這個問題是在這個代碼中的某個地方。謝謝
'delete [] * phones;'與構造函數一致。 – Jarod42
順便說一句,不要忘記5/3/0的規則。 (拷貝/移動/分配)。 – Jarod42
不要試圖成爲[三星程序員](http://c2.com/cgi/wiki?ThreeStarProgrammer)。額外的間接性是無用的和傷害的(正如你所見),而動態分配的數組只是不好的做法。有'std :: vector'。 – LogicStuff