处理内存泄漏和更改数组大小

时间:2014-11-24 21:19:57

标签: c++

我正在创建一个模板化类,其中包含一个名为array的变量,并允许用户更改此数组的大小。我想知道如何处理内存泄漏?

templated <class T>
class MyClass{
    long *array;
    MyClass(long min, long max);
    void Add(long n);
}

MyClass<T>::MyClass(long min, long max){
    array= new long[min];
}
void  MyClass<T>::Add(long n){
    delete [] array;
    array = new long[n];
}

(是的,我知道矢量会更好,但我必须使用数组。)

这是否有效地将数组的大小更改为n并解决内存泄漏问题?

1 个答案:

答案 0 :(得分:0)

当你有一个动态分配内存的类时,你需要一个析构函数来释放它。在您的情况下,您的MyClass析构函数也需要delete[] array;