Asignación de memoria para matriz 2d usando 1 llamada malloc

We can allocate memory for 2d matrix using 1 malloc call as
int (*a)[5];
int i,j;

a = malloc (sizeof (int *) * 5); // asignando 5 punteros y cada puntero apunta a una matriz de 5 pulgadas

¿Cómo podemos liberar esta memoria asignada con éxito? Usando free (a) da error de tiempo de ejecución

Usando para (i = 0; i <5; i ++) libre (a [i]);

libre (a);

Esto también da error en tiempo de ejecución

Respuestas a la pregunta(1)

Su respuesta a la pregunta