Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2008, 06:02
manolo669
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Punteros en funciones c

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.