【发布时间】:2012-01-25 13:36:32
【问题描述】:
我正在处理我的应用程序中的内存泄漏问题。我将其缩小到旧语法以声明“Single”类型。使用声明创建了一个测试应用程序,它在消耗大量内存后崩溃。我错过了什么?
测试代码在这里:
#include "stdafx.h"
using namespace System;
int main()
{
while(1)
{
System::Single * sngTemp = new System::Single(0.0);
//System::String ^sngTemp = gcnew System::String(S"dsfasdfasdf");
}
return 0;
}
【问题讨论】:
-
你有什么问题?当然,您不会问为什么该代码会崩溃。您正在分配内存而不是释放它。
-
问题是“为什么我只在使用 gcnew 时才进行垃圾回收,而不是在使用 new 时?”
-
delnan,我故意不释放。我期待GC做!我错了吗?
-
凯特,你的问题很接近我正在寻找的答案。
-
@MaheswaranRamados “gcnew”这个名字是一个线索。这是 C++,我们决定我们想要什么和不想要什么。你想要垃圾收集吗?使用 gcnew。你想自己做吗?不要使用 gcnew。
标签: c++ .net syntax memory-leaks managed-c++