本文主要讨论的是在矩阵大小未知的情况。在数组大小未知时,一般常用的定义方法是动态内存分配,对于一个高维数组,以2D的int 型数组为例:
1.将数组定义为一维的,如
int *array = new int[row*colum];
2.另一种方法是仍然定义为高维的形式,如
int ** array = new int*[row];//注意这些数组元素地址并不一定连续
for(int i;i < row;i++)
{
array[i] = new int[colum];
}
这种定义的方法比较形象。
float** a = new float*[3];
for(int i = 0; i < 3; i++)
{
a[i] = new float[3];
a[i][0] = 1;
a[i][1] = 2;
a[i][2] = 3;
}
cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;
cout <<*(a[0] + 0)<<" "<<*(a[0] + 1)<<" "<<*(a[0] + 2)<<endl;
cout <<*(a[0] + 18)<<" "<<*(a[0] + 19)<<" "<