多阵列动态内存分配错误

Posted

技术标签:

【中文标题】多阵列动态内存分配错误【英文标题】:Error on Multiple Array Dynamic Memory Allocation 【发布时间】:2019-01-20 12:47:11 【问题描述】:

请告知为什么以下不起作用。使用VC2017:

long **l;
l = new long [5][7];

它显示错误为:

“类型为“long*[7]”的值不能分配给一个实体 长**"...

我该如何解决?

【问题讨论】:

long **l=NULL; l=新长 [5][7]; 【参考方案1】:

您需要声明并初始化指向long* 的第一个指针数组,然后将其分配给每个自己的数组:

long** l = new long*[5]; // declare array of pointer of 5 cell
for(int i = 0; i < 5; ++i)
    l[i] = new long[7]; // assign to each cell array with 7 cells

请记住,使用 new 分配的任何内容都是在堆上创建的,并且必须使用 delete 取消分配。

【讨论】:

以上是关于多阵列动态内存分配错误的主要内容,如果未能解决你的问题,请参考以下文章

动态分配,结构,联合

动态内存分配

C语言之动态内存管理(动态内存分配+经典笔试题+柔性数组)[建议收藏]

动态内存管理详解(动态内存函数介绍 + 常见动态内存错误 + 经典笔试题)

part03-动态内存分配

part03-动态内存分配