BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

funcion free en c

BocaDePez
BocaDePez

hola, no encuentro el lugar adecuado, asi que lo planteo aqui mismo, disculpa.
tengo una duda respecto a la funcion free del lenguaje c.
si tengo este codigo:

int *puntero1;
int *puntero2;
puntero1=malloc(10*sizeof(int));
puntero2=puntero1;
free(puntero2);

se libera la memoria que reservé?
free libera la memoria reservada anteriormente a un identificador de variable o a una direccion de memoria?
saludos

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
BocaDePez
BocaDePez

Sí. Se libera. puntero2 es igual que puntero1 y free libera punteros, no variables.

🗨️ 4
BocaDePez
BocaDePez

entonces es posible hacer una funcion que reciba un puntero a puntero, y las dimensiones y vaya liberando cada puntero y por ultimo el puntero a puntero?
no consigo hacerlo
saludos

🗨️ 3
BocaDePez
BocaDePez

El puntero a puntero no tendrías que liberarlo, igual que no liberas un puntero a una region de memoria.
Dicho de otro modo, libera la memoria que reserves, no la variable en que se almacena la dirección de dicha memoria (puntero)

🗨️ 2
BocaDePez
BocaDePez

si hay que liberarlo, puesto que a este puntero a puntero se le ha reservado espacio para x punteros.
la cosa es como hacer la funcion para liberar todo eso.
saludos

🗨️ 1
BocaDePez
BocaDePez