【发布时间】:2013-03-28 01:57:16
【问题描述】:
请看下面的代码
#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”的内存?
这些问题在代码的适当位置以 cmets 的形式提出。请帮忙!
编辑
这里的问题是,如果我在main()中删除了'secondMemory'的内存,那么内存一分配就没有了!
【问题讨论】:
-
@LightnessRacesinOrbit:不,我的猫吃了它。为什么?
-
你为什么担心
secondMemory“一分配就消失了”?无论如何你都没有使用它...如果你要用它做某事,那么显然你需要在使用它之后执行发布。 -
@LucTouraille:感谢您的回复。我的模拟论文以这种方式提出了一个问题。 “如果我们删除它,记忆会怎样?”是问题。
标签: c++ visual-studio-2010 pointers destructor