libera un doble puntero

Creé una matriz 2-D usando el doble puntero así:

int** pt; pt = (int*) malloc(sizeof(int)*10);

Sé que un puntero se libera así

free(ptr);

¿Cómo podemos liberar el doble puntero?

¿Qué pasa si imprimimos algo y luego liberamos esa memoria y salimos del programa? ¿Consiste la memoria final de lo que usamos o será la misma que la inicial?

Respuestas a la pregunta(2)

Su respuesta a la pregunta