C语言 二维数组下标为变量的初始化方法

    例如:构建一个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));
动态分配maxrownumlong double的内存空间,跟long double a[5]相似,但前者是堆上分配的,后者是栈上分配的;

    

data1_bfE=(long double **)malloc(maxrownum*sizeof(long double *));
 
  
意思就是定义一个有maxrownum个long double类型的指针的动态数组,然后在里面存放指针,相当于容器,data1_bfE就会成为指针的指针。

你可能感兴趣的:(C语言不简单的小知识点)