【发布时间】:2025-12-31 07:05:06
【问题描述】:
我正在尝试在 8Gb Windows 7 64 位机器上写入 RAM。
int main(int argc, char *argv[])
{
for (__int64* i; ; i = new __int64(0))
continue;
return 0;
}
在它占用大约 2-3gigs 之后它会抛出一个异常:Microsoft C++ exception: std::bad_alloc at memory location 0x0039f634. 我可以说任务管理器中仍然有足够的 RAM。我曾尝试使用 Visual Studio 2010 和 Qt Creator。
mlock.c 中抛出的异常中断:
void __cdecl _unlock (
int locknum
)
{
/*
* leave the critical section.
*/
LeaveCriticalSection( _locktable[locknum].lock );
}
有什么想法吗?我希望它用 0 写入所有非活动 RAM。
【问题讨论】:
-
第一:内存!= RAM。第二:你是在构建 32 位还是 64 位二进制文件?
-
+1 表示 32 位编译目标 - 2GB 看起来很可疑。
-
是的,我认为它已经是 64 位了,因为它是用 __int64 编译的。不过现在可以使用了。