删除析构函数中 class 的成员,该成员由 C++ 中的方法中的 new 生成

Delete a member of a class in destructor which is made by new in a method in C++

我搜索了这个问题,但我找不到它,如果它是一个重复的问题并且没有给出负分,请告诉我答案的link。

Student class 我有很多成员,但其中四个是由操作员 new 在一个调用 set

的方法 public

我这里只写其中一个:

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

这里是方法 setpublic:

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

这是析构函数,即public:

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

main:

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

编译过程中没有任何错误,但是当我运行遇到错误时:

我也更改了 main 代码只是为了检查:

    Student s;

错误还存在。

阿兹 vu1p3n0x 说:

如果我使用 new [] 我应该使用 delete [].

谢谢vu1p3n0x