[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