我有一個非常簡單的隨機浮動的for循環,產生一些隨機浮點數:產生for循環
int dim = 6;
int n = 100000;
int size = n * dim;
float data[size],r;
for(int i = 0; i < size; i++)
{
r = static_cast <float> (rand())/static_cast <float> (RAND_MAX);
data[i] = r;
}
,直到我從100000〜1000000這裏增加n的大小它工作正常,是全代碼在ideone上:http://ideone.com/bhOwVr
實際上在我的電腦上,它只適用於n = 10000。任何更大的數字都會導致崩潰。沒有錯誤信息。
您可能內存不足。 – AndyG
你正試圖在堆棧中分配一個數組,這對堆棧來說太大了:'float data [size]' – sjdowling
AndyG我有足夠的內存。超過4GB。如果我的數學正確並且float 32bit = 4byte * 1 000 000 * 6 = 24 000 000 byte = 23437 kByte = 22 MB。 – user1930254