[求助]关于数组初始化的烦恼~~
请教各位高人,怎么样能做到根据输入者的要求确定数组的大小?
书上说不能把变量作为数组的下标的!!那怎么办呢?
用new指令吗?能告诉我一下原理吗?
谢谢大家,我得到了一个不错的答案并且上机试验过了,效果不错:
//动态构造并初始化二维数组"array"
void build(void)
{
double **array,size;
label:cout<<"请输入行列式的阶\n";
cin>>size;
if(size>=1&&(int)size==size)
{
array = (double**)malloc(sizeo(doublef*)*size);
for( int i=0; i<size; i++ )
{
array[i] = (double*)malloc(sizeof(double)*size);
}
for( int a=0;a<size;a++)
for(int b=0;b<size;b++)
{
cout<<"请输入第"<<a+1<<"行第"<<b+1<<"列的数\n";
cin>>array[a][b];
}
}
else
{
cout<<"\a输入错误,请重新输入\n";
goto label;
}
}
但是其中两句有些不明白:
array = (double**)malloc(sizeo(doublef*)*size);
array[i] = (double*)malloc(sizeof(double)*size);
哪位高手能解释得详细一些呢?
还有,为什么第二句要用循环语句而第一句不用呢?
麻烦解释一下我真得很想弄明白谢谢!!