- #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); 
-   
- 	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++) { 
- 		(*matrix)[i] = NULL; 
- 	} 
- 	matrix = NULL; 
- } 
				I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxtYWxsb2MuaD4Kdm9pZCBCdWlsZE1hdHJpeChpbnQqKiogbWF0cml4LCBpbnQgcm93LCBpbnQgY29sdW1uKTsKdm9pZCBFeGl0QW5kRnJlZShpbnQqKiogbWF0cml4LCBpbnQgcm93KTsKaW50IG1haW4oKSB7CglpbnQgcm93ID0gMiwgY29sdW1uID0gMjsKCWludCAqKm1hdHJpeCwgaSwgajsKCUJ1aWxkTWF0cml4KCZtYXRyaXgsIHJvdywgY29sdW1uKTsKCglwcmludGYoIllvdXIgbWF0cml4OlxuIik7Cglmb3IgKGkgPSAwOyBpIDwgcm93OyBpKyspIHsgLy9qdXN0IHRvIGNoZWNrIHRoYXQgaXQgaW5zZXJ0cyBhbGwgdGhlIHZhbHVlcyBPSwoJCWZvciAoaiA9IDA7IGogPCBjb2x1bW47IGorKykgewoJCQlwcmludGYoIlxuJWQgXG4iLCBtYXRyaXhbaV1bal0pOwoJCX0KCX0KCUV4aXRBbmRGcmVlKCZtYXRyaXgsIHJvdyk7CglyZXR1cm4gMDsKfQp2b2lkIEJ1aWxkTWF0cml4KGludCoqKiBtYXRyaXgsIGludCByb3csIGludCBjb2x1bW4pIHsKCWludCBpLCBqOwoJKm1hdHJpeCA9IChpbnQqKiltYWxsb2Mocm93ICogc2l6ZW9mKGludCAqKSk7Cglmb3IgKGkgPSAwOyBpIDwgcm93OyBpKyspCgkJKCptYXRyaXgpW2ldID0gKGludCopbWFsbG9jKGNvbHVtbiAqIHNpemVvZihpbnQpKTsKCXByaW50ZigiXG5QbGVhc2UgZW50ZXIgdmFsdWVzIHRvIHRoZSBtYXRyaXhcbiIpOwoJZm9yIChpID0gMDsgaSA8IHJvdzsgaSsrKSB7CgkJZm9yIChqID0gMDsgaiA8IGNvbHVtbjsgaisrKSB7CgkJCXNjYW5mKCIlZCIsICYoKCptYXRyaXgpW2ldW2pdKSk7IAoJCX0KCX0KfQp2b2lkIEV4aXRBbmRGcmVlKGludCoqKiBtYXRyaXgsIGludCByb3cpIHsKCWludCBpOwoJZm9yIChpID0gMDsgaSA8IHJvdzsgaSsrKSB7CgkJZnJlZSgoKm1hdHJpeClbaV0pOwoJCSgqbWF0cml4KVtpXSA9IE5VTEw7Cgl9CglmcmVlKCptYXRyaXgpOwoJbWF0cml4ID0gTlVMTDsKfQ==