Título: ¿Como funciona exactamente realloc()? Publicado por: marcoma en 17 Agosto 2015, 17:46 pm Me gustaría saber si realloc ademas de asignar los valores a la nueva dirección de memoria
se encarga de liberar la memoria ocupada anteriormente. Gracias :-X Título: Re: ¿Como funciona exactamente realloc()? Publicado por: Hogger en 17 Agosto 2015, 20:03 pm Hola,
Realloc() únicamente expande o contrae un bloque de memoria ya existente por lo que no libera la memoria ocupada anteriormente, i.e, expande/contrae un malloc()/calloc() anterior. Los valores ya existentes en el bloque de memoria son preservados. Si se expande el bloque de memoria reservado, los valores del nuevo "pedazo" reservado son indeterminados. http://www.cplusplus.com/reference/cstdlib/realloc/ (http://www.cplusplus.com/reference/cstdlib/realloc/) Saludos. Título: Re: ¿Como funciona exactamente realloc()? Publicado por: Eternal Idol en 18 Agosto 2015, 01:13 am Si, siempre que realloc no retorne null ya libero la memoria pasada como primer parametro.
Título: Re: ¿Como funciona exactamente realloc()? Publicado por: marcoma en 18 Agosto 2015, 10:27 am en el enlace dice: The function may move the memory block to a new location
por tanto supongo que si que cambiara de dirección de memoria no? o lo hace solo al no poder re dimensionar desde esa dirección de memoria actual? ;D Título: Re: ¿Como funciona exactamente realloc()? Publicado por: Eternal Idol en 18 Agosto 2015, 11:36 am Solo cambia la direccion cuando lo necesita pero tenes que guardar el retorno en una variable temporal y comprobar que no sea null, cuando no sea null ya podes asignarlo a la variable original sin problema (o sera igual o la memoria original estara liberada).
|