[C con Clase] Diferencia entre creación variable normal y resevado de espcio con malloc.
Samuel Porras
samuelporras en gmail.com
Mie Oct 7 22:21:37 CEST 2009
Supongamos que tenemos un array pero no sabemos de cuantos huecos
disponemos:
int array[?], si queremos desperdiciar memória podemos hacer, int
array[100000] para tener huecos de sobra que posiblemente según que
programa sea puede que incluso no nos baste dicha cantidad de huecos,
por lo tanto podemos crear dicho array de forma dinámica y ocupará solo
la cantidad de memória necesitada en ese momento.
Por lo tanto malloc() te sirve para ocupar memória en tiempo de
ejecución según se necesite, luego tienes realloc() que te modifica la
cantidad de "huecos" del array, y luego tienes free() que te libera la
memória, al ser dinámica si terminas el programa sin liberar la memória
con free() será espacio perdido hasta el reinicio del sistema, cosa poco
factible proque si tu programa se vuelve a ejecutar no utiliza la misma
zona de memória por lo tanto iria consumiendo memória todo el rato hasta
acabar con ella.
Espero haber sido claro, por si acaso de dejo el link que te lo explica
mas a fondo:
http://c.conclase.net/librerias/funcion.php?fun=malloc
Resumen: La única diferencia factible es el aprovechamiento de la
memória, es decir, utilizar sólo la memória necesaria en ese momento.
Jorge Vega Sanchez escribió:
> Buenas.
>
> Me acaba de surgir una duda que me corroe. No termino de verle uso a
> la función malloc para reservar espacio de memoria para una varible o
> struct o lo que sea. Al crear una variable no hacemos lo mismo ??? Si
> no librermoas este espacio reservado al finalizar nuestro programa lo
> seguimos teniendo ahí el valor ??
>
>
> Best regards
> Jorge
>
>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
Más información sobre la lista de distribución Cconclase