删除C++中的一个新方法所构造的析构函数中的一个类的成员

问题描述:

我搜索了这个问题,但是我找不到它,如果它是一个没有提供否定点的重复问题,请告诉我答案的链接。删除C++中的一个新方法所构造的析构函数中的一个类的成员

学生类我有很多成员,但其中四个是由运营商的方法公开呼吁设置

我写的只是其中的一个在这里创建:

class Student{ 
    private: 
    float *tp; 
    .... 
} 

这里是设置公共的方法:

void Student::set(int field, int valeur){ 
    ... 
      tp = new float[valeur]; 
    ...  
} 

这里是析构函数这是公共

~Student(){ 
     ... 
     delete tp; 
     ... 
    } 

主要

... 
Student *students=new Student[n]; 
... 
delete students; 

没有任何错误在编译过程中,但是当我运行所面临的错误:

我也改变了主要代码只是为了检查,如:尚未

Student s; 

错误存在。

enter image description here

+0

有代码错误,你没有张贴 –

+0

请提供你包含的内容表现出这个问题 – vu1p3n0x

+0

最小但完整的代码示例,你不叫'set'和因此'tp'可能有一个不确定的值,导致'delete tp'具有未定义的行为 – vu1p3n0x

了Az vu1p3n0x说:

如果我用新的[]我应该使用delete []。

谢谢vu1p3n0x

+1

很高兴我能帮助:D – vu1p3n0x