请看下面的代码
#include <iostream>
using namespace std;
class Memory
{
private:
int *memory;
public:
Memory()
{
memory = new int[3];
for(int i=0;i<3;i++)
{
memory[i] = i;
cout << memory[i] << endl;
}
}
~Memory()
{
delete[] memory;
}
};
int main()
{
cout << "Running" << endl;
Memory m;
// do I have to invoke ~Memory() ?
int *secondMemory = new int[5];
//How to clear the memory of 'secondMemory' ?
system("pause");
return 0;
}
在这里,我已经清除了memory
类的析构函数中动态分配的数组的内存。但我的问题是
- 我必须调用 ~Memory() 吗?
- 如何清除“secondMemory”的内存?
这些问题在代码的适当位置作为注释提出。请帮忙!
编辑
这里的问题是,如果我在 main() 中删除了 'secondMemory' 的内存,那么内存一分配就消失了!