搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 二维数组空间的申请
标题:
二维数组空间的申请
只看楼主
liqingyulipeng
等 级:
新手上路
帖 子:63
专家分:3
注 册:2008-10-11
结帖率:
77.78%
楼主
问题点数:0 回复次数:5
二维数组空间的申请
今天写某个程序的时候,需要使用一个二维数组,但是其行数和列数都是由用户输入的,也就是说在编译的时候这个二维数组的行和列都是未知,故不能将其定义为栈变量和数据段变量。那么只好用动态申请空间的办法,但是应该怎么申请呢?(我只知道malloc和calloc,但它们都不能用来申请二维空间)
搜索更多相关主题的帖子:
空间
申请
2008-12-09 16:04
xlh5225
等 级:
论坛游民
威 望:
2
帖 子:188
专家分:25
注 册:2007-8-14
第
2
楼
得分: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
等 级:
论坛游民
威 望:
2
帖 子:188
专家分:25
注 册:2007-8-14
第
3
楼
得分:0
另外,用malloc与free和用new与delete是差不多的,只是用malloc要求指针转换与要知道分配内存的大小,如果不是内置对象的话,还有构造函数与析构函数的调用问题。
楼主说:“(我只知道malloc和calloc,但它们都不能用来申请二维空间) ”这句话,你还是收回吧,只是你不知道而已!
2008-12-09 16:47
yu8697593
等 级:
新手上路
帖 子:48
专家分:0
注 册:2008-11-21
第
4
楼
得分:0
我们所谓的二维数组在内存中还不是一维数组的方式来存储的,所以只要你输入行和列就可以知道数组所占空间的大小即:行*列*数据类型
2008-12-09 18:55
yu8697593
等 级:
新手上路
帖 子:48
专家分:0
注 册:2008-11-21
第
5
楼
得分:0
要理解数组的数组就是二维数组~~
2008-12-09 18:56
peng_piao
等 级:
新手上路
帖 子:89
专家分:0
注 册:2008-11-5
第
6
楼
得分: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
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-248456-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.673240 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved