#include <stdio.h>
#include <stdlib.h>
#define ROWS 3
#define COLS 4
void print_arr2d(int** arr2d) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%3d", arr2d[i][j]);
}
printf("\n");
}
}
int** allocate_arr2d() {
int** arr2d = malloc(ROWS * sizeof(int*));
for (int i = 0; i < ROWS; ++i) {
arr2d[i] = calloc(COLS, sizeof(int));
}
return arr2d;
}
void free_arr2d(int** arr2d) {
for (int i = 0; i < ROWS; ++i) {
free(arr2d[i]);
}
free(arr2d);
}
int main(void) {
int** arr2d = allocate_arr2d();
print_arr2d(arr2d);
free_arr2d(arr2d);
return 0;
}
/*
run:
0 0 0 0
0 0 0 0
0 0 0 0
*/