TEMA, tengo lo siguiente:
char cad1[20] = "pepe";
char cad2[20] = "pepe2";
char **com = (char **)malloc (sizeof(char *)*2);
com[0] = (char *)malloc (sizeof(char)*(strlen(cad1)+1));
com[1] = (char *)malloc (sizeof(char)*(strlen(cad2)+1));
limpiarTabla(&com,1);
funcion limpiarTabla:
void limpiarTabla(char ***tabla,pos){
for ( ; pos >= 0 ; pos--) free ( *(tabla[pos]) );
free(*tabla);
}
PROBLEMA :
El caso es que al intentar limpiar la posicion 1 de la tabla, la funcion peta por violacion del segmento.
Mirando la direccion de los punbteros con [ printf ("%p",*(tabla+pos)); ]
me doy cuenta que el puntero en la direccion 1 de la tabla esta a nulo. ????????
Haber si alguien me podria explicar este caso, que escapa a mi saber.
GRACIAS.