Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: d91 en 1 Junio 2014, 03:38 am



Título: asignacion dinamica de memoria
Publicado por: d91 en 1 Junio 2014, 03:38 am
hola a todos, he estado investigando acerca de la asignacion dinamica de memoria en c++, pero necesito encontrar la diferencia entre malloc, calloc, realloc puesto que los tres se usan para reservar bloques de memoria libre, agradecere la orientacion...


Título: Re: asignacion dinamica de memoria
Publicado por: engel lex en 1 Junio 2014, 03:54 am
intentaste googlearlo?

de todas formas te respondo con lo primero que conseguí en google solo escribiendo los nombres...

 aqui la wiki sobre malloc (http://es.wikipedia.org/wiki/Malloc) está bien desarrollada con comparaciones entre las 3 funciones


y aqui los de plusplus.com
realloc (http://www.cplusplus.com/reference/cstdlib/realloc/)
resumen: "Changes the size of the memory block pointed to by ptr."

calloc (http://www.cplusplus.com/reference/cstdlib/calloc/)
resumen: "Allocates a block of memory for an array of num elements, each of them size bytes long, and initializes all its bits to zero."

malloc (http://www.cplusplus.com/reference/cstdlib/malloc/)
resumen: "Allocates a block of size bytes of memory, returning a pointer to the beginning of the block.


Título: Re: asignacion dinamica de memoria
Publicado por: Drewermerc en 1 Junio 2014, 05:09 am
hola amigo.
bueno yo creo que la principal diferencias es que.
malloc, calloc, realloc y free son de c.
new y delete son de c++.
y como leí anteriormente un comentario aqui que decia si estas en c usa las funciones de c  y si etas en c++ usa la funciones de c++.
buen esta es la principal difernecia que veo y bueno en cuanto funcionamiento no uso mucho c++
con respecto a las funciones de c te puedo decir.
malloc =  reserva un bloque de memoria.
calloc =  reserva un bloque de memoria pero lo inicializa.
realloc = este redimenciona el bloque de memoria osea que  puede ir modificando el espacio de memoria como lo vallas requeriendo.
bueno si me equivoque en elgo espro que me corrigan.
bueno espero haberte ayudado en tu duda.
saludos.
Drewermerc