簡體   English   中英

如何為數組分配大量內存?

[英]How to allocate a large amount of memory for an array?

機器有2 GB和更多的可用內存。 就像陣列中元素的最大數量僅受OS /計算機功能的限制。 也就是說,具有至少2 GB的陣列可以具有2 ^ 32 -1個元素。 但是編譯器不會錯過。 如果我真的想要一個包含2 ^ 32個元素的數組怎么辦? :)我嘗試了2 ^ 31-1,但它不起作用... OS 64位,6 GB內存,Win32 Console App

char * buffer = new char[2147483647]; //Microsoft C++ exception: std::bad_alloc at memory location 0x004FF998.

不能在Windows 32位應用程序中獲得2 GB的單個分配。 您可能會想,因為使用/ LARGEADDRESSAWARE可以獲得3或4 GB。 但是你不能。

Windows操作系統在2GB標記附近映射了一些陷阱頁 ,用於捕獲我假設的某些編程錯誤(實際上是閱讀鏈接,我錯了,它使Alpha AXP端口更容易了)。 這意味着您的2 GB陣列無處可容納。

是的,將您的應用程序構建為64位應用程序。

暫無
暫無

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

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