我想为我正在采用的类做一个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