c++ - 为什么尝试在 C++ 中分配二维数组会导致内存损坏错误?
问题描述
我有这段代码,试图分配一个二维数组:
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.
为什么会发生这种情况?我没有访问分配之外的任何内存,只是在那里分配新内存。
解决方案
推荐阅读
- ubuntu - 在 ubuntu 上为 gtkmm 和 gtk+ 配置 eclipse
- c# - 将字符串转换为 Aspose.Cells.Name
- virtualbox - 无法启动 VM - Minikube
- unity3d - 将纬度和经度转换为球体上的 3d 坐标是否准确?
- mysql - 如何将数据从数据转储(SqLite3)导入 django?
- xml - PowerShell 操作 XML - 向 XML 对象添加任意数据
- c# - 使用长文件路径找不到文件
- android - Android Camera 2 API - 加速预览
- arrays - 更新列表 Postgres jsonb 中的值
- sql - 使用 column_names 创建一行数据透视选择