| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2446 人关注过本帖
标题:二维数组空间的申请
只看楼主 加入收藏
liqingyulipeng
Rank: 1
等 级:新手上路
帖 子:63
专家分:3
注 册:2008-10-11
结帖率:77.78%
收藏
 问题点数:0 回复次数:5 
二维数组空间的申请
今天写某个程序的时候,需要使用一个二维数组,但是其行数和列数都是由用户输入的,也就是说在编译的时候这个二维数组的行和列都是未知,故不能将其定义为栈变量和数据段变量。那么只好用动态申请空间的办法,但是应该怎么申请呢?(我只知道malloc和calloc,但它们都不能用来申请二维空间)
搜索更多相关主题的帖子: 空间 申请 
2008-12-09 16:04
xlh5225
Rank: 2
等 级:论坛游民
威 望:2
帖 子:188
专家分:25
注 册:2007-8-14
收藏
得分:0 
int m, n;
cin >> m >> n;

//申请M*N的空间
int **ptrArray = new int*[m];
for(int i=m; i<m; ++i)
   ptrArray[i] = new int[n];

//释放空间
for(int i=0; i<m; ++i)
   delete [] ptrArray[i];

delete [] ptrArray;
2008-12-09 16:45
xlh5225
Rank: 2
等 级:论坛游民
威 望:2
帖 子:188
专家分:25
注 册:2007-8-14
收藏
得分:0 
另外,用malloc与free和用new与delete是差不多的,只是用malloc要求指针转换与要知道分配内存的大小,如果不是内置对象的话,还有构造函数与析构函数的调用问题。

楼主说:“(我只知道malloc和calloc,但它们都不能用来申请二维空间) ”这句话,你还是收回吧,只是你不知道而已!
2008-12-09 16:47
yu8697593
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-11-21
收藏
得分:0 
我们所谓的二维数组在内存中还不是一维数组的方式来存储的,所以只要你输入行和列就可以知道数组所占空间的大小即:行*列*数据类型
2008-12-09 18:55
yu8697593
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-11-21
收藏
得分:0 
要理解数组的数组就是二维数组~~
2008-12-09 18:56
peng_piao
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-11-5
收藏
得分:0 
以下是引用xlh5225在2008-12-9 16:45的发言:

int m, n;
cin >> m >> n;

//申请M*N的空间
int **ptrArray = new int*[m];
for(int i=m; i



那个ls的    for(int i=0; i<m; i++) 这一行没注意吧,写错了
2008-12-09 21:09
快速回复:二维数组空间的申请
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020106 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved