Programación General > C/C++
Liberar el puntero de un puntero
(1/1)
dvspeed:
Hola, mi pregunta es que si tengo un puntero apuntando a otros dos punteros, si libero el primer puntero con free, los otros dos se liberarán o tengo que liberarlos todos uno a uno.
alb:
Bueno,
A cada malloc tiene que corresponder un free. Poco importa si un puntero apunta a otros punteros o a otra cosa.
dvspeed:
Ok, vamos que tengo que ir haciendo free uno por uno, gracias.
ProfesorX:
Como bien dice el compañero, por cada malloc, debe de haber un free.
Yo añadiria ademas que por lo regular al liberar punteros, se deben liberar en order inverso a como fueron creados, no es obligatorio, pero si recomendado, ejemplo:
--- Código: C++ --- int *puntero1, *puntero2, *puntero3; puntero1 = (int*) malloc(sizeof(int)); puntero2 = (int*) malloc(sizeof(int)); puntero3 = (int*) malloc(sizeof(int)); free(puntero3); free(puntero2); free(puntero1);
Saludos :)
Navegación
Ir a la versión completa