小编sri*_*dan的帖子

如何分配具有连续内存的二维数组?我如何使用它来访问行和列?给我一个例子

我创建了一个二维数组,其内容如下

     int i,j,lx,ly;// lx,ly are the row and column respectively
     double** a;

     a=(double**) malloc((lx+2)*sizeof(double));

     a[0]= (double*) malloc((lx+2)*(ly+2)* sizeof(double));

     assert(a[0]); 

     for(i=1;i<lx+2;i++)
     {
       a[i]=a[i-1]+i*(ly+2);
     }
Run Code Online (Sandbox Code Playgroud)

// 我为这个数组中的所有元素分配了一个值 0,如下所示

    for(i=0;i<(lx+2)*(ly+2);i++)
    {
      a[i]=0;
    } 
Run Code Online (Sandbox Code Playgroud)

// 我打印出下面的所有元素

      for(i=0;i<(lx+2)*(ly+2);i++)
      {
         printf("position %d values %d\n",i,a[i]);
      } 
Run Code Online (Sandbox Code Playgroud)

// 当我看到输出时,它向我显示了一个特定位置 13 处的垃圾值。我无法弄清楚。还请告诉我如何访问行和列,如 Eg 以访问第 7 列第 0 行和第 5 行就 lx 而言,第 6 列列,如我的代码所示

c arrays dynamic-allocation

3
推荐指数
1
解决办法
3008
查看次数

标签 统计

arrays ×1

c ×1

dynamic-allocation ×1