Dynamische Speicherzuweisung 2d-array in C

int **twoDary = (int**) (malloc(rows * sizeof(int *)));
int **twoDaryStart = twoDary;
int *currentrow;

for ( i = 0; i < rows; i++ ){  //Originally: for (i = 0; i < columns; i++)
    *(twoDary + i) =  (malloc(columns * sizeof(int)));
}

for (j = 0; j < rows; j++) {
    currentrow = *(twoDary + j);
    for ( i = 0; i < columns; i++ ) {
        *(currentrow + i) = i;
        printf("%d\n", *(currentrow+i));
    }
}  

Ich versuche zum erstellen einer dynamischen 2-D-array. Ich bin dann zuweisen wollen, ich ,der Strom i (in der inneren for-Schleife) auf jedes element in jeder Zeile. Also meine Ausgabe soll die zahlen 0 - Spalte gedruckt row Zeiten.

Dass ich immer ein seg-fault, wenn meine Zeilen und Spalten sind nicht das gleiche, also 5 Zeilen, 10 Spalten. Kann jemand sehen, aus diesem code, warum das passiert?

eigentlich currentrow initialisiert bei seinem ersten Einsatz in der zweiten Schleife. Die variable twoDaryStart initialisiert wird, aber ungenutzt. Sie bevorzugen könnte, um Ihren Kommentar zu löschen.

InformationsquelleAutor SystemFun | 2013-02-05

Schreibe einen Kommentar