我编写了以下代码来为数组分配内存:
try {
int n = 0;
cin >> n;
double *temp = new double[n];
...
}
catch(exception& e) {
cout << "Standard exception: " << e.what() << endl;
exit(1);
}
当然,我正在检查 n 是否有负值等,但是当我输入一些超过 536*(10^6) 的大数字时,我没有收到错误分配异常,而是出现“无效分配大小:4294967295 字节”崩溃。
EG 我输入 n = 536*(10^6) --> bad-alloc exception 我输入 n = 537*(10^6) --> Invalid Allocation Size: 4294967295 Bytes --> 崩溃
任何想法为什么会发生这种情况?