新微赢技术网

标题: [求助]关于数组初始化的烦恼~~ [打印本页]

作者: 孤独の浪子    时间: 2009-11-4 01:26
标题: [求助]关于数组初始化的烦恼~~
请教各位高人,怎么样能做到根据输入者的要求确定数组的大小?
书上说不能把变量作为数组的下标的!!那怎么办呢?
用new指令吗?能告诉我一下原理吗?
作者: 牛牛    时间: 2009-11-4 01:26
我自己的想法啊
比如char a[]="aabca";
int j = 0;
for(int i = 0;a[i]!='\0';i++)
{
j++;
}
cout << j <<endl;

j就是数组的大小!!!!
作者: 释放压力    时间: 2009-11-4 01:26
……我的表达不好吧……
我的意思是,例如:
int num;
printf(“请输入二维数组的行数”);
scanf("%d",&num);
int a=num;
printf("请输入二维数组的列数");
scanf("%d",&num);
int b=num;
double c[a][b];
这里在检测时提示不能把变量作为下标,那么如果我想根据a,b来确定二维数组的行数与列数时,该怎么办呢?
作者: QQ糖    时间: 2009-11-4 01:26
N维的数组,至少要在编辑的过程中给出N-1层维数。
作者: .`D.D`地`    时间: 2009-11-4 01:26
放函数里,用参数完成
作者: 風過aiq無痕    时间: 2009-11-4 01:26
数组[]里面的数必须是常数,要动态分配就用new
作者: 小华﹖    时间: 2009-11-4 01:26
上大阿Ben,

当你使用数组的时候, 你已经清楚了你有多少个元素需要处理。 而如果你事先无法确定数组的长度, 那么你需要动态开辟空间, 在C++ 中就是使用 new. 再进一步可以对你说的就是: 你可以使用容器, 容器是他人已经开发完成的一种可以自动扩展的用于存放其他对象的一种数据类型, 比如 vector. 这个话题也许已经超出你的现有的知识层面了, 不过你会以后学到他的。
作者: first    时间: 2009-11-4 01:26
这个问题我也搞不懂,望解释的详细些,好多天了都没有弄清楚……
作者: aiq無奈tx    时间: 2009-11-4 01:26
你可以用指针的指针,先申请一个指针数组,然后再对每个指针循环申请空间。

比如:

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




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2