#include<stdio.h>#include<stdlib.h>#defineM3#defineN4voidinitialMatrix(int***matrix,int m,int n){*matrix =(int**)malloc(m *sizeof(int*));for(int i =0; i < m; i++){(*matrix)[i]=(int*)malloc(n *sizeof(int));}}voidinputMatrix(int**matrix,int m,int n){printf("Enter %d*%d matrix:\n", m, n);for(int i =0; i < m; i++){for(int j =0; j < n; j++){scanf("%d",&matrix[i][j]);}}}intmax(int**matrix,int m,int n){int max = matrix[0][0];for(int i =0; i < m; i++){for(int j =0; j < n; j++){if(matrix[i][j]> max){max = matrix[i][j];}}}return max;}voidoutputMatrix(int**matrix,int m,int n,intmax(int**,int,int)){printf("Max Value in the matrix is %d\n",max(matrix, m, n));}voidfreeMatrix(int***matrix,int m){for(int i =0; i < m; i++){free((*matrix)[i]);}free(*matrix);}intmain(){int**matrix =NULL;initialMatrix(&matrix, M, N);inputMatrix(matrix, M, N);outputMatrix(matrix, M, N, max);freeMatrix(&matrix, M);system("pause");return0;}