據我所知,調用malloc()
基本上意味着程序正在向操作系統請求大量內存。我正在編寫一個程序來與相機連接,在這個程序中,我需要分配足夠大的存儲空間來存儲數百張圖像(它是一個快速相機)。如何更改C++中的malloc()分配的最大大小
當我爲大約1.9Gb的圖像分配空間時,一切正常。分配計算方法很簡單:
int allocateBurst(int numImages)
{
int streamSize = ZIMAGESIZE * numImages;
data.images = new unsigned short [streamSize];
return 0;
}
但只要我去了2 GB限制,我得到運行時錯誤是這樣的:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
好像2個演出可能是最大尺寸我可以一次分配。我有32 Gig的內存,並希望能夠在一次分配中分配更大的內存。這可能嗎?
我正在運行Ubuntu 12.10。
可能重複的[I想要一個任意大的緩衝區在Linux/C/C + +](http://stackoverflow.com/questions/8317011/i-want-an-arbitrarily-large-buffer-in-linux-cc) –
是二進制編譯爲64-位? –
是的,它編譯爲64位 –