66问答网
所有问题
动态二维数组内存空间连续么
int **p=new int[m];
for(int i=0;i<m;i++)
{
p[i]=new int[n];
}
这样申请出的二维动态数组的内存空间是连续的么?我是个新手,还没学数据结构,谢谢了!
举报该问题
推荐答案 推荐于2018-04-20
不是
new出来的空间是“ 堆” 上分配的空间,是不连续的
只要是堆上分配的空间都是不连续的,更确切的说,是不一定连续,一般不连续
C语言的malloc函数,calloc函数,和C++的new分配的空间都是堆上的,是不连续的
“栈”上的空间才是连续的
如普通数组
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/U292i9Dvn.html
其他回答
第1个回答 2010-06-19
第一句就错了,应该是
int ** p= new int*[m];
然后再申请每个分量的空间。这样其实是一行一行分配空间。
不是连续的。
直接定义的二位数组的空间是连续的。
第2个回答 2010-06-19
连续
本回答被网友采纳
相似回答
二维数组
的
内存
存放问题
答:
是连续的
。c跟c++内存上看都只有一维的数组,也就是,只要你声名了一个数组,那么这个数组的所有元素都是在内存中顺序存放的。所谓的多维数组只是一种逻辑概念或者处理数据的组织形式。比如 数组 Int arr[3][3][3] 这个数组对于编译器来说就是一个容量为3*3*3的一维数组。之所以分为三个维度,...
二维数组
初始化时,为什么是
连续
存储的?
答:
二维数组
的实际上在内存里存储格式是一维的 也就是a [3][2]占用了 3*2 个int 类型数据的
连续内存空间
排放的模式是:a[0][0] ,a[0][1], a[1][0],a[1][1], a[2][0],a[2][1]为了表示方便,我打了空格分开了,其实是连续存储的,只是逻辑上认为是二维的而已.那么考虑初始化的...
inta[][3];
答:
首先 int a [] [3] = {1,2,3,4,5,6}; 是一个二维数组,
但是内存空间中这些数据的存储是连续的
。可以理解为 int a [5] = {1,2,3,4,5,6}; a存储的都是数组的首元素地址,区别在于以为一维数组的下标代表的是地址,二维数组下标代表的是行和列的个数。int (*p)[3]; 这里是...
如何在C 中
动态
分配
二维数组
答:
(3)直接分配一个x*y大小的一维数组,
这样确保空间是连续的
,但访问数组元素不直观。对于我这个“经典”回答,我那时还一直是 挺得意的,至少从蹭分的角度来看,这样回答还是很有效的。今天在ChinaUnix论坛闲逛时看到一个贴子,再次证实了我在C 方面才疏学浅。include <stdio.h include <stdlib.h inc...
请大佬看看我这段c语言代码有什么问题?
答:
二维数组和二级指针是有区别的,
二维数组内存
上
连续
,可以像你这样用num【i】,二级指针指向一堆连续的一级指针,每个一级指针分别指向一堆数,你只能通过num【i】【j】这样访问,因为它在内存上不是连续的;换种说法,二维数组在你定义的时候,电脑知道它多大,给你分配好了
空间
,二级指针则不同,电...
数组
的特点
答:
二、元素类型相同
数组
中的元素类型必须相同,这是因为数组在内存中是
连续
存储的由于元素类型相同,每个元素占据的
内存空间
大小是固定的,因此可以通过索引计算出元素在内存中的地址,从而实现快速访问。这也意味着数组中的元素必须具有相同的数据类型,例如整型数组只能存储整数,字符数组只能存储字符等。三、...
大家正在搜
二维数组怎么动态内存分配
java二维数组动态分配内存
new动态分配内存二维数组
动态分配二维数组空间
c语言动态内存分配二维数组
动态二维数组怎么定义
二维数组的存储空间
malloc函数动态分配二维数组
二维数组内存
相关问题
如何创建动态的多维数组且内存空间连续
C语言中二维数组如何申请动态分配内存
C语言如何动态分配二维数组??
java中二维数组动态分配内存问题(初学者)
c语言:怎样用malloc函数动态分配二维数组,使之可输入数...
弱问一下,C语言中声明一个数组,其存储空间是连续分布的吗?
c语言问题:c语言中二维数组在内存中怎样存储?