社区
C语言
帖子详情
怎样才可以动态生成一个二维数组???
michaelli
2003-11-08 01:32:15
在c++中到底怎样才可以动态生成一个二维数组???
...全文
71
15
打赏
收藏
怎样才可以动态生成一个二维数组???
在c++中到底怎样才可以动态生成一个二维数组???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
michaelli
2003-11-09
打赏
举报
回复
还是bambooshan(bambooshan) 的正确,
谢谢各位了,天冷了,祝大家身体健康
bambooshan
2003-11-08
打赏
举报
回复
阿明的有点错,应该如下:
建立二维数组a[m][n]
代码如下:
{int **a;
a=new int *[m];
for(int j=0;j<n;j++)
a[j]=new int[n];}
我试过,你们可以验证一下呀。
ssbull
2003-11-08
打赏
举报
回复
关注
kitigesh
2003-11-08
打赏
举报
回复
re
liem
2003-11-08
打赏
举报
回复
int *Build2DArray(int m,int n)//建立m行n列的二维数组
{
int **array=new int(m);
for(int i=0;i<m;i++)
*array[i]=new int(n);
return array;
}
返回类型改为int **
Tangyongkang
2003-11-08
打赏
举报
回复
关注,这问题也搞得我很郁闷
michaelli
2003-11-08
打赏
举报
回复
报错:cannot convert from 'int *' to 'int **
michaelli
2003-11-08
打赏
举报
回复
多谢adams_here(lost in Lost)
to zhouqingyuan(浪帆):
编译通过不了啊
分不够再加
adams_here
2003-11-08
打赏
举报
回复
zhouqingyuan(浪帆)方法真不错,学习。不过我始终认为没有必要用两个坐标访问(顽固不化),如果是三维,四维呢,这个算法复杂性就高了。但是这是一个很好的算法。
yndfcd
2003-11-08
打赏
举报
回复
int* pData = new int[m*n];
int(* array)[n] = static_cast<int (*)[n]>(pData);
zhouqingyuan
2003-11-08
打赏
举报
回复
int *Build2DArray(int m,int n)//建立m行n列的二维数组
{
int **array=new int(m);
for(int i=0;i<m;i++)
*array[i]=new int(n);
return array;
}//大致是这样了,自己再看看,有没有修改的地方
adams_here
2003-11-08
打赏
举报
回复
如果你非要以arrayDynamic[i][j]的形式访问,这倒难倒我了,暂时想不出什么方法来。数组的定义是要在编译时就要知道大小的,动态实现恐怕不行。
另外,书上的定义说“下标是数组元素到数组开始的偏移量”。我觉得正确理解这句话就能动态生成了,只要知道偏移量就可以访问任意的元素,而究竟是几维,全在你的喜恶,在内存空间中其实就是一维的。
adams_here
2003-11-08
打赏
举报
回复
呵呵。其实楼主为何这么在意是arrayDynamic[i]还是arrayDynamic[i][j]呢?arrayDynamic[i]可以用来访问任意维的数组阿,只要你的i是计算准确的,是你想要取的那个值就可以了。
michaelli
2003-11-08
打赏
举报
回复
谢谢楼上的,我知道数组是连续存放的,
但是,比如说
cin>>n;//从键盘输入一个n
int * arrayDynamic = new int(n);
就可以生成一个一维数组,访问的时候arrayDynamic[i]就行,
那么有没有办法生成动态二维数组,用arrayDynamic[i][j]访问呢???
adams_here
2003-11-08
打赏
举报
回复
我不知道你具体的情况怎样,不过可以有很多方法,殊途同归。
无论是几维数组,在内存空间都是一个个连续存放的,都可以看成一维的。
所以可以这样:
int * arrayDynamic = new int(row*col);//row,col分别是你要生成的数组的行列数
然后就可以像数组一样使用了。
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
arrayDynamic[i*col+j]=i+j;
cout<<arrayDynamic[i*col+j]<<endl;
}
}
不过有个不好的地方是,因为arrayDynamic是指针,所以用arrayDynamic[i]可能会超出你想要得范围之外,到达数组以外的内存空间。因此有必要检查坐标是否越界。
动态
二维数组
c#编程
动态
二维数组
动态
二维数组
动态
二维数组
动态
生成
二维数组
的做法
动态
生成
二维数组
的做法,注意其中指针的用法,简单易明
青少年C++编程NOIP/CSP竞赛通关语法-
二维数组
1、本课程为零基础C++语法专题课,是青少儿参加信息学奥赛NOIP/CSP需要学习的语法专题课; 2、本课程每节课均配有练习题以及真题,以锻炼孩子的解题能力;... 6、本课程介绍的是
二维数组
。也是历来竞赛重要考点。
可以
动态
生成
二维数组
的 DLL
可以
动态
生成
二维数组
的 DLL
javascrip如何创建
二维数组
并解决数组问题(查找字母位置)
0.0首先在我们要先知道,如何定义
一个
二维数组
我们在java中定义
二维数组
时很简单int a=[][] ,a=new int[2][4](在这只举两个例子)但在 javascrip中,却有一点点复杂。 例如, 我们先试着定义
一个
4
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章