#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	unsigned int m_row = 3;
	unsigned int m_col = 5;
	int** m = (int**)malloc(m_row * sizeof(int*));
	
	for (unsigned int i = 0; i < m_row; ++i)
		m[i] = (int*)malloc(m_col * sizeof(int));
	
	/* here we go with coding */
	
	for (unsigned int i = 0; i < m_row; ++i)
		free(m[i]); /*obligatory memory free: step 1/2*/
	
	free(m); /*obligatory memory free: step 2/2*/

	return 0;
}