我有这段代码,试图分配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.
为什么会这样?我不会访问分配的内存之外的任何内存,只是在此处分配新的内存。