Erstellen Sie ein 2D-Array, indem Sie den Zeiger auf die Funktion in c @ übergebe

So lese ich Dutzende von Beispielen für die Übergabe eines 2D-Array-Zeigers an function, um Werte dieses Arrays in function abzurufen / zu ändern. Ist es jedoch möglich, innerhalb der Funktion Speicher zu erstellen (zuzuweisen)? Etwas wie das

#include <stdio.h>

void createArr(int** arrPtr, int x, int y);

int main() {

    int x, y;       //Dimension
    int i, j;       //Loop indexes
    int** arr;      //2D array pointer
    arr = NULL;
    x=3;
    y=4;

    createArr(arr, x, y);

    for (i = 0; i < x; ++i) {
        for (j = 0; j < y; ++j) {
            printf("%d\n", arr[i][j]);
        }
        printf("\n");
    }
    _getch();    
}

void createArr(int** arrPtr, int x, int y) {
    int i, j;       //Loop indexes
    arrPtr = malloc(x*sizeof(int*));
    for (i = 0; i < x; ++i)
        arrPtr[i] = malloc(y*sizeof(int));

    for (i = 0; i < x; ++i) {
        for (j = 0; j < y; ++j) {
            arrPtr[i][j] = i + j;
        }
    }    
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage