簡單的問題,我在書面方式,需要打開巨大的圖像文件(8kx8k)中的程序,但我對如何初始化巨大的陣列在C來保持圖像的有點困惑++ 。C++數組大小的x86和x64的
我一直在嘗試這樣的事:
long long SIZE = 8092*8092; ///8096*8096
double* array;
array = (double*) malloc(sizeof(double) * SIZE);
if (array == NULL)
{
fprintf(stderr,"Could not allocate that much memory");
}
但有時我NULL檢查沒有趕上該數組沒有初始化,任何想法,爲什麼?
而且在X64的機器了12 GB的RAM,任何想法,爲什麼運行的時候,我不能初始化超過2個或3個數組,甚至?
我真的希望不要有代替陣列的部分工作。歡迎任何幫助。
謝謝。
如果您在Windows下,請查看Address Windowing Extensions:http://msdn.microsoft.com/en-us/library/aa366527(VS.85).aspx – Artelius 2009-10-19 11:29:09
注意:'malloc'是C方式分配內存,在C++中你應該使用'new'。 – Jesper 2009-10-19 11:41:52
可能是一個錯字,但仍然是:「8k」應該可能是8 * 1024,即8192.「8096」的讀法類似於4k(4096)和8k的混合。 – unwind 2009-10-19 11:43:32