二维数组可以看成特殊的一维数组,每个元素又由一个一维数组组成。
例如:构建一个maxrownum*maxrownum的矩阵
long double **data1_bfE;
data1_bfE=(long double **)malloc(maxrownum*sizeof(long double *));
for(i=0;i<maxrownum;i++)
{
data1_bfE[i]=(long double *)malloc(maxrownum*sizeof(*data1_bfE));
}
data1_bfE[i]=(long double *)malloc(maxrownum*sizeof(*data1_bfE));
动态分配maxrownum个long double的内存空间,跟long double a[5]相似,但前者是堆上分配的,后者是栈上分配的;
data1_bfE=(long double **)malloc(maxrownum*sizeof(long double *));
意思就是定义一个有maxrownum个long double类型的指针的动态数组,然后在里面存放指针,相当于容器,data1_bfE就会成为指针的指针。
注意事项:C语言在定义数组和表示数组元素时常常采用a[ ][ ]的形式,使用方便,不易出错。