| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1313 人关注过本帖
标题:[求助]关于数组初始化的烦恼~~
只看楼主 加入收藏
上大阿Ben
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-11
收藏
 问题点数:0 回复次数:13 
[求助]关于数组初始化的烦恼~~

请教各位高人,怎么样能做到根据输入者的要求确定数组的大小?
书上说不能把变量作为数组的下标的!!那怎么办呢?
用new指令吗?能告诉我一下原理吗?

搜索更多相关主题的帖子: 烦恼 
2006-11-11 10:36
lrgsz
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-27
收藏
得分:0 

我自己的想法啊
比如char a[]="aabca";
int j = 0;
for(int i = 0;a[i]!='\0';i++)
{
j++;
}
cout << j <<endl;

j就是数组的大小!!!!


学习如逆水行舟,不进则退!
2006-11-11 11:00
上大阿Ben
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-11-11
收藏
得分:0 
……我的表达不好吧……
我的意思是,例如:
int num;
printf(“请输入二维数组的行数”);
scanf("%d",&num);
int a=num;
printf("请输入二维数组的列数");
scanf("%d",&num);
int b=num;
double c[a][b];
这里在检测时提示不能把变量作为下标,那么如果我想根据a,b来确定二维数组的行数与列数时,该怎么办呢?

2006-11-11 11:23
dubaoshi
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2006-9-22
收藏
得分:0 
N维的数组,至少要在编辑的过程中给出N-1层维数。

人行善,福虽未至,祸已远离;人行恶,祸虽未至,福已远离.
2006-11-11 13:05
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
放函数里,用参数完成

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-11-11 13:19
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

数组[]里面的数必须是常数,要动态分配就用new


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-11-11 15:47
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
char pp[100];
cin>>pp;
unsigned int tmp=strlen(pp);
char *data=new char[tmp];

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-11-11 18:24
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
上大阿Ben,

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

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-11-12 01:38
qijiang
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-11-12
收藏
得分:0 

这个问题我也搞不懂,望解释的详细些,好多天了都没有弄清楚……

2006-11-12 17:29
xfeng
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-6-1
收藏
得分:0 

你可以用指针的指针,先申请一个指针数组,然后再对每个指针循环申请空间。

比如:

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];


2006-11-12 18:59
快速回复:[求助]关于数组初始化的烦恼~~
数据加载中...
 
   



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

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