Wie ordne ich ein 2D-Array mit ansteckendem Speicher zu? Wie verwende ich es, um auf Zeilen und Spalten zuzugreifen? Gib mir ein Beispiel

Ich habe ein 2D-Array erstellt, das wie folgt lautet

     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);
     }

// Ich ordne allen Elementen in diesem Array den Wert 0 zu (siehe unten)

    for(i=0;i<(lx+2)*(ly+2);i++)
    {
      a[i]=0;
    } 

// Ich drucke alle meine Elemente unten aus

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

// Wenn ich die Ausgabe sehe, zeigt sie mir einen Junk-Wert an einer bestimmten Position 13. Ich kann das nicht herausfinden. Bitte sagen Sie mir auch, wie ich auf Zeilen und Spalten wie zB zugreifen soll, um auf die 7. Spaltenreihe 0 und 5 zuzugreifen Zeile 6 Spalte in Bezug auf lx, ly wie in meinem Code gezeigt

Antworten auf die Frage(4)

Ihre Antwort auf die Frage