动态二维数组内存空间连续么

int **p=new int[m];
for(int i=0;i<m;i++)
{
p[i]=new int[n];
}
这样申请出的二维动态数组的内存空间是连续的么?我是个新手,还没学数据结构,谢谢了!

不是
new出来的空间是“ 堆” 上分配的空间,是不连续的
只要是堆上分配的空间都是不连续的,更确切的说,是不一定连续,一般不连续
C语言的malloc函数,calloc函数,和C++的new分配的空间都是堆上的,是不连续的

“栈”上的空间才是连续的
如普通数组
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-19
第一句就错了,应该是
int ** p= new int*[m];

然后再申请每个分量的空间。这样其实是一行一行分配空间。
不是连续的。
直接定义的二位数组的空间是连续的。
第2个回答  2010-06-19
连续本回答被网友采纳
相似回答