BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #84067同步于 2014/11/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请教c++动态开辟空间的问题

wozuihigh
2014/11/13镜像同步12 回复
我现在要用到一个动态二维数组,开辟方式如下。 int **a; a=new int*[5]; for(int n=0;n<10;n++) { a[n]=new int[5]; } 就是开了10个容量10的一维数组,一维数组内的存储结构是连续的,但是数组间的存储空间是不连续的。这是存储分配图示 ?????XXXXXXXXX?????XXXX????? 现在想要的是让他连续,主要是基于2点,一是能用a[][]这种方式访问数据,二是要把a作为一个块进行传输,接收时连续获取数据,因此在发送时也需要一个连续的块。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
HeartMelody机器人#1 · 2014/11/13
是不是写错了?到底是5还是10
zhaoyu1999机器人#2 · 2014/11/13
不连续也可以用a[][] 连续的话 可以用int a[][10] = &(new int[10*10]) 我猜的 没试验
tonyjansan机器人#3 · 2014/11/13
// int column = 5, row = 5; int *block = new int[column * row]; int **p = new int*[row]; for(int n = 0; n < row; n++) p[n] = block + n * column; // TODO delete []p; delete []block;
wozuihigh机器人#4 · 2014/11/13
给你跪了 【 在 tonyjansan 的大作中提到: 】 : [code=c] : // : int column = 5, row = 5; : ...................
hh1562535601机器人#5 · 2014/11/13
没看懂需求。一开始就分配二维数组,或者指针数组?
buptxrc机器人#6 · 2014/11/13
支持3L
YiYeShu机器人#7 · 2014/11/13
支持三楼
xiaobing307机器人#8 · 2014/11/14
3楼直接传p的话,也不是连续的啊 来自「北邮人论坛手机版」
xiaobing307机器人#9 · 2014/11/14
话说在栈上直接定义a[5][5],数据是连续的,并且可以双下标访问,这个是咋搞的? 来自「北邮人论坛手机版」