我知道Windows 32位允許任何大約2 GB的內存地址空間的進程作爲最大值。 2千兆字節= 2147483648字節。我試圖分配堆內存遠遠超過2147483648個字節更多,我看不出有什麼錯誤或異常,此代碼:進程的內存地址空間
# include<iostream>
int main(){
void *x=malloc(2147489999);
free(x);
system("pause");
return 0;
}
的原因是什麼?
你是怎麼想的錯誤或警告應該用信號? – pezcode
異常或任何其他通知? – Aan
C沒有例外,'malloc'是C,而不是C++。 'malloc'通過返回NULL來表示失敗。你沒有觀察到返回值。 – asveikau