0
我寫了一個程序的無限循環如下不斷分配新的內存是什麼bad_alloc的?爲什麼輸出屏幕不顯示所有的值
#include<iostream>
using namespace std;
int main()
{
for (int i = 0; ; ++i)
{
double* x = new double[2000];
*x = i * 2.5;
cout << i <<" "<< *x << endl;
}
return 0;
}
它成功運行,並且它在最後說bad_alloc的結束。
133415 333538
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
我認爲這表明沒有更多的內存。 請告訴我是否認爲是正確的。 並且輸出屏幕也不顯示從零開始的所有值,而是從133125開始。 爲什麼會這樣?
_它按照你的要求成功運行了嗎? – Tas
是的,我的主要目的是檢查,當內存分配停止....所以它停在133415,但我只是問了錯誤的含義,爲什麼輸出屏幕不顯示從零的值,而是133125 ... .. – fleshbender
只是想增加我的知識.....不知道人們受到傷害,而這樣做:P .... – fleshbender