簡體   English   中英

為64位進程提供2GB的內存空間

[英]Enforce a 2GB memory space for a 64-bit process

而是一個理論上的問題-任何人都知道如何確保分配給64位進程的連續內存不超過2GB。

這是在移植32位C ++應用程序時出現的,該程序執行指針算術(不好!),並且依賴於減法結果以適合32位整數。 在修正指針算法以正確處理大於2GB的ptrdiff_t值之前,為進程ptrdiff_t 2GB的內存空間可能是一種快速解決方案。

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

C和C ++標准不需要調用malloc()operator new來返回與先前返回的內存連續的內存,並且很少有現代系統給出如何在進程中分配虛擬內存。

除非您能告訴我們您要定位的平台,否則您可能是這方面的SOL(可能有特定於平台的解決方案。)

重新定義全局newdelete運算符,以便任何大於2GB的塊分配都會失敗...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM