为什么尝试在C ++中分配2D数组会导致内存损坏错误?

时间:2018-07-11 15:42:27

标签: c++ c++11 malloc

我有这段代码,试图分配2D数组:

int** arr;
int rows = 32;

arr = new int*[rows];
for(int i=0; i<rows; i++)
{
    arr[i] = new int[64];
}

arr = new int*[rows]行上,出现以下错误:

malloc(): memory corruption

Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at                 ../sysdeps/unix/sysv/linux/raise.c:51
51  ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.

为什么会这样?我不会访问分配的内存之外的任何内存,只是在此处分配新的内存。

0 个答案:

没有答案
相关问题