设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 800|回复: 8
打印 上一主题 下一主题

[求助]关于数组初始化的烦恼~~

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 01:26:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位高人,怎么样能做到根据输入者的要求确定数组的大小?
书上说不能把变量作为数组的下标的!!那怎么办呢?
用new指令吗?能告诉我一下原理吗?
2#
发表于 2009-11-4 01:26:10 | 只看该作者
我自己的想法啊
比如char a[]="aabca";
int j = 0;
for(int i = 0;a[i]!='\0';i++)
{
j++;
}
cout << j <<endl;

j就是数组的大小!!!!
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-4 01:26:11 | 只看该作者
……我的表达不好吧……
我的意思是,例如:
int num;
printf(“请输入二维数组的行数”);
scanf("%d",&num);
int a=num;
printf("请输入二维数组的列数");
scanf("%d",&num);
int b=num;
double c[a][b];
这里在检测时提示不能把变量作为下标,那么如果我想根据a,b来确定二维数组的行数与列数时,该怎么办呢?
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-4 01:26:12 | 只看该作者
N维的数组,至少要在编辑的过程中给出N-1层维数。
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-4 01:26:13 | 只看该作者
放函数里,用参数完成
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-4 01:26:14 | 只看该作者
数组[]里面的数必须是常数,要动态分配就用new
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-4 01:26:16 | 只看该作者
上大阿Ben,

当你使用数组的时候, 你已经清楚了你有多少个元素需要处理。 而如果你事先无法确定数组的长度, 那么你需要动态开辟空间, 在C++ 中就是使用 new. 再进一步可以对你说的就是: 你可以使用容器, 容器是他人已经开发完成的一种可以自动扩展的用于存放其他对象的一种数据类型, 比如 vector. 这个话题也许已经超出你的现有的知识层面了, 不过你会以后学到他的。
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-4 01:26:17 | 只看该作者
这个问题我也搞不懂,望解释的详细些,好多天了都没有弄清楚……
回复 支持 反对

使用道具 举报

9#
发表于 2009-11-4 01:26:18 | 只看该作者
你可以用指针的指针,先申请一个指针数组,然后再对每个指针循环申请空间。

比如:

cin>>m>>n; (C用scanf)

//申请 p[m][n]
int **p;
p=new int*[n];
for(i=0;i<n;i++)
p[i]=new int[m];
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 23:48 , Processed in 0.105628 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表