因此,我讀了幾十個例子,將二維數組指針傳遞給函數以獲取/更改函數中該數組的值。但是有可能在函數內部創建(分配內存)。事情是這樣的:通過將指針傳遞給函數創建二維數組c
#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;
}
}
}
是的,它是可能的。 – Martin
代碼中沒有數組指針,也沒有任何2D數組。 – Lundin
@Martin 你能告訴我如何? – Marcin