帮忙分析二维数组指针和地址
帮忙分析二维数组指针和地址
[解决办法]
#include <stdio.h>#include <malloc.h>typedef int (*Array)[10];void print1(int **a, int x, int y){ int i = 0; for (; i < x; ++i) { int j = 0; for (; j < y; ++j) { printf("%d-- ", a[i][j] = i); } printf("\n"); }}void print2(Array a, int x, int y){ int i = 0; for (; i < x; ++i) { int j = 0; for (; j < y; ++j) { printf("%d-- ", a[i][j] = i); } printf("\n"); }}void initialize(int **array, int length, int columnCount){ int i = 0; for (; i < length; ++i) { array[i] = (int*)calloc(columnCount, sizeof(int)); }}void dispose(int **array, int length){ int i = 0; for (; i < length; ++i) { free(array[i]); array[i] = NULL; }}int main(){ int *array1[5]; Array array2 = (Array)calloc(5, 10 * sizeof(int)); initialize(array1, 5, 10); print1(array1, 5, 10); printf("\n\n"); dispose(array1, 5); print2(array2, 5, 10); free(array2), array2 = NULL; return 0;}