Buenasss
Solo una cosita, en tu funcion limpiarTabla, el ultimo tabla = NULL estaría de más, porque lo que recibe una funcion es una copia del char **, el cambio no se va a mantener, esa variable automatica desaparece una vez que la funcion retorne, si queres que tabla quede seteada en NULL deberias hacer algo asi:
Código HTML:
void limpiarTabla(char *** tabla,pos)
{
for ( ; pos >= 0 ; pos--)
{
free ( (*tabla)[pos] );
(*tabla)[pos] = NULL;
}
free (*tabla);
*tabla = NULL;
}
Saludos