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