如何在Xcode中使用析构函数? 我在使用XCODEL运行C++程序时,遇到以下错误。除了自定义析构函数,对象在“工作人员”中释放动态分配的内存,程序运行良好。当与DEV C++运行相同的代码时,不会发生错误。我更喜欢xcode作为IDE。也许有一个编译器设置需要调整

如何在Xcode中使用析构函数? 我在使用XCODEL运行C++程序时,遇到以下错误。除了自定义析构函数,对象在“工作人员”中释放动态分配的内存,程序运行良好。当与DEV C++运行相同的代码时,不会发生错误。我更喜欢xcode作为IDE。也许有一个编译器设置需要调整,c++,xcode,C++,Xcode,A4Q1(94887)malloc:*对象0x100100a38的错误:未分配要释放的指针 workforce::workforce(int n)//设置size=n并分配员工数组 { 尺寸=n; list=新员工[n];//为n名员工分配足够的内存 } //这里是三大原型 劳动力::~劳动力(无效) { 删除[]列表; //CUT,你可能在使用列表时覆盖你收到的内存。DEV C++生成代码恰好更“宽大”。在上面。试着用运行代码,看看发生了什么。你使用裸数组似乎没有什么好的理由。不要。使用std

A4Q1(94887)malloc:*对象0x100100a38的错误:未分配要释放的指针

workforce::workforce(int n)//设置size=n并分配员工数组
{
尺寸=n;
list=新员工[n];//为n名员工分配足够的内存
}
//这里是三大原型
劳动力::~劳动力(无效)
{
删除[]列表;

//CUT,你可能在使用列表时覆盖你收到的内存。DEV C++生成代码恰好更“宽大”。在上面。试着用运行代码,看看发生了什么。你使用裸数组似乎没有什么好的理由。不要。使用
std::vector
。这样你就不必担心删除它。只需创建一个
std::vector list
成员(而不是指针).不要责怪编译器,你的代码中有错误。我认为你没有遵守三的规则。但从提供的信息来看,这只是一个猜测。
workforce::workforce(int n)   // set size = n and allocate an array of employees
{
    size = n;
    list = new employee [n]; //allocate sufficient memory for n employees
}
// big 3 prototypes here
workforce::~workforce(void)
{
    delete [] list;
    //cout << "Destroying workforce"<<endl;
}