Q. How to allocate a 2 dimensional array dynamically? Ans #include <stdlib.h> /* EXIT_FAILURE, EXIT_SUCCESS */ #include <errno.h> #include <stdio.h> #define ROW 5 #define COL 5 int main ( void ) { int **cont_arr; int **cont_arr; int **arr = malloc ( ROW * sizeof ( int * ) ); if ( !arr ) { perror ( "Error" ); exit ( EXIT_FAILURE ); } for ( i=0; i < ROW; i++ ) { arr[i] = malloc ( sizeof ( int ) * COL ); if ( !arr[i] ) { perror ( "Error" ); exit ( EXIT_FAILURE ); } } /* * Contiguous memory allocated for array. Below. */ cont_arr = (int **) malloc ( ROW * sizeof ( int * ) ); if ( !cont_arr ) { perror ( "Error" ); exit ( EXIT_FAILURE ); } cont_arr[0] = (int *) malloc ( ROW * COL * sizeof ( int ) ); if ( !cont_arr[0] ) { perror ( "Error" ); exit ( EXIT_FAILURE ); } for ( int i=1; i < ROW; i++ ) cont_arr[i] = cont_arr[0] + i * COL; exit ( EXIT_SUCCESS ); }