这是一个简单的问题,我是一个初学者,但我想确认一下。
假设我有一个类对象 int * data,它指向一个由 5 个整数组成的数组。假设我有一个函数可以用 5 个参数替换数据,如下图所示。
void replaceData(int a, int b, int c, int d, int e){
int * temp = new int[5];
temp[0] = a;
temp[1] = b;
temp[2] = c;
temp[3] = d;
temp[4] = e;
data = temp;
}
我担心这会导致内存泄漏,因为如果数据中已经有 5 个整数,它们仍然会四处浮动。我很想通过以下方式更改它以避免这种情况:
void replaceData(int a, int b, int c, int d, int e){
int * temp = new int[5];
temp[0] = a;
temp[1] = b;
temp[2] = c;
temp[3] = d;
temp[4] = e;
delete data; //would this prevent a memory leak?
data = temp;
temp = 0;
}
非常感谢您的意见!