为64位进程强制使用2GB内存空间

时间:2011-08-30 11:48:10

标签: c++

而是一个理论问题 - 任何人都知道如何确保为64位进程分配不超过2GB的连续内存。

这是在移植一个32位C ++应用程序时出现的,该应用程序执行指针运算(坏!)并依赖于减法结果以适应32位整数。在修复指针算法以正确处理> 2GB ptrdiff_t值之前,为进程强制执行2GB内存空间可能是一个快速修复。

注意:目标平台包括Solaris 10,Linux和Windows。

2 个答案:

答案 0 :(得分:3)

C和C ++标准不需要调用malloc()operator new来返回与先前返回的内存相邻的内存,并且很少有现代系统 给出如何虚拟内存在一个进程中发布。

除非您能告诉我们您正在针对哪个平台(可能有特定于平台的解决方案),否则您可能在此方面处于SOL状态。

答案 1 :(得分:0)

重新定义全局newdelete运算符,以便任何超过2GB的块分配都会失败...