我正在使用visual studio 2008進行開發。我的程序需要處理大量的內存。當我的程序嘗試分配一個512M浮點數組時,會發生錯誤。代碼如下:[內存分配問題]未處理的異常:Microsoft C++異常:內存位置的std :: bad_alloc
int size = 512*512*512;
float *buffer = new float[size];
在此分配之前,程序已經消耗了大約554M的內存。我的桌面有4G主內存,我正在使用Windows XP 32位。
如何避免分配錯誤?非常感謝您的意見!
不是一個解決方案,但你爲什麼不使用'std :: vector'? – GManNickG 2010-09-13 16:55:41
那是512M?你的變量初始化應該是'int size = 512 * 1024 * 1024;'。另外,我會將'size'的數據類型更改爲'size_t'。 – Praetorian 2010-09-13 17:24:42
是否有任何理由需要擁有512M陣列(128M * sizeof(float))?你能把它分成更小的塊嗎?你可以移動到64位系統更多的內存? – 2010-09-13 17:41:19