我有这段代码(在函数 abc 中)

matriz = new (nothrow) int*[qnt_objetos];
if (matriz == 0)
     exit(0);

for (int i = 0; i < qnt_objetos; i++)
{
    matriz[i] = new (nothrow) int[tam_mochila];
    if (matriz[i] == 0)
        exit(0);
}
matriz 是一个这样声明的二维数组(在 main 上)
int **matriz = NULL;

但是,使用 new 运算符时不会分配内存空间。我做错了什么?而且,直接在 main 函数中分配内存是否更好?这不是使代码更难以辨认吗?

PS:在 NetBeans(或使用终端)上调试它我得到了 matriz adress = 0x0(NULL,如果我没记错的话)

最佳答案

这意味着新操作悄悄失败(nothrow),并返回NULL,您分配了多少内存?

10-06 14:27