#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
void BuildMatrix(int*** matrix, int row, int column);
void ExitAndFree(int*** matrix, int row);
int main() {
	int row = 2, column = 2;
	int **matrix, i, j;
	BuildMatrix(&matrix, row, column);

	printf("Your matrix:\n");
	for (i = 0; i < row; i++) { //just to check that it inserts all the values OK
		for (j = 0; j < column; j++) {
			printf("\n%d \n", matrix[i][j]);
		}
	}
	ExitAndFree(&matrix, row);
	return 0;
}
void BuildMatrix(int*** matrix, int row, int column) {
	int i, j;
	*matrix = (int**)malloc(row * sizeof(int *));
	for (i = 0; i < row; i++)
		(*matrix)[i] = (int*)malloc(column * sizeof(int));
	printf("\nPlease enter values to the matrix\n");
	for (i = 0; i < row; i++) {
		for (j = 0; j < column; j++) {
			scanf("%d", &((*matrix)[i][j])); 
		}
	}
}
void ExitAndFree(int*** matrix, int row) {
	int i;
	for (i = 0; i < row; i++) {
		free((*matrix)[i]);
		(*matrix)[i] = NULL;
	}
	free(*matrix);
	matrix = NULL;
}