小编Sta*_*ter的帖子

为什么我得到"无效分配大小:4294967295字节"而不是std :: bad_alloc异常?

我编写了以下代码来为数组分配内存:

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字节 - >崩溃

任何想法为什么会这样?

c++ arrays memory-management bad-alloc

4
推荐指数
1
解决办法
7397
查看次数

标签 统计

arrays ×1

bad-alloc ×1

c++ ×1

memory-management ×1