2015-10-19 59 views
1

是否有可能在给定基地MSVC分配内存?或者至少强迫它在虚拟4GB以下分配内存(即只在使用32位的地址分配内存) - 除了编译x86的解决方案而不是x64。是否有可能在给定的基地在MSVC/VC++中分配内存?

+0

为什么你需要这样做?什么是用例? –

+1

根据MSDN,你可以使用'/ LARGEADDRESSAWARE:NO'来使所有内存低于2Gb的限制。 – skyking

+0

我认为你不能这样做,因为当你创建一个进程时,操作系统会为你的进程分配一个地址空间。您只能使用该分配的内存。 如果您尝试访问,则会导致分段错误错误。操作系统会用信号警告你的过程,如果你不处理这个信号,它会终止你的过程。 您可以使用下面的指针来尝试。手动分配地址,然后尝试到达那里。 long * ptr = 0xfffffffff * ptr = 12; –

回答

2

根据MSDN,您可以使用/LARGEADDRESSAWARE:NO使所有内存低于2Gb限制。

否则,如果你想要低于或高于2Gb限制的内存,你可以在VirtualAlloc函数之上实现一个分配器。

相关问题