#include <stdio.h>
#include <stdlib.h>
int **allocate2DArray(int row, int col)
{
int **pp = (int **) malloc(sizeof(int *)*row);
for(int i = 0; i < row; i++)
pp[i] = (int *) malloc(sizeof(int)*col);
return pp;
}
void delete2DArray(int **pp, int row)
{
for(int i = 0; i < row; i++)
free(pp[i]);
free(pp);
}
void init(int **pp, int row, int col)
{
for (int i = 0; i < row; i++)
for (int j = 0; j < col; j++)
pp[i][j] = i * j + 1;
}
void print(int **pp, int row, int col)
{
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
printf("%3d", pp[i][j]);
printf("\n");
}
}
int main()
{
int row = 3, col = 4;
int **arr2d = allocate2DArray(row, col);
init(arr2d, row, col);
print(arr2d, row, col);
delete2DArray(arr2d, row);
return 0;
}
/*
run:
1 1 1 1
1 2 3 4
1 3 5 7
*/