2015-10-19 65 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函數之上實現一個分配器。

相關問題