我有这段代码(在函数 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,您分配了多少内存?