[pregunta] memoria dinamica , estandar vs api de windows

Iniciado por daryo, 8 Julio 2013, 18:15 PM

0 Miembros y 1 Visitante están viendo este tema.

daryo

bueno mi pregunta es cual es la diferencia entre el uso de malloc , free y demas funciones estandar a el uso de los heap y la api  en windows  :)
buenas

eferion

Todo uso de memoria dinámica implica el uso del heap.

Aunque existen funciones para crear varios heap ( que creo recordar que no son ni tan siquiera parte del estándar ), lo normal es no preocuparse demasiado por ello.

como normal general, salvo que explícitamente requieras el uso de heap específicos, para reservar memoria dinámicamente en c tienes:

* malloc: simplemente te reserva la memoria, no hace ninguna inicialización.
* calloc: reserva la memoria y la inicializa escribiendo ceros en todos los bytes.
* realloc: para cambiar la cantidad de memoria reservada.

y para liberarla, simplemente tienes free.

Los heaps pueden dar problema por ejemplo al mezclar librerías en debug y release... por ejemplo Qt 4 tenía un problema de este tipo al liberar listas... pero es bastante raro encontrarse un problema de estos... de hecho en mi caso el de Qt ha sido el primero con el que me he topado.

rir3760

Cita de: daryo en  8 Julio 2013, 18:15 PMmi pregunta es cual es la diferencia entre el uso de malloc , free y demas funciones estandar a el uso de los heap y la api  en windows
Una pagina sobre el tema de administración de memoria en MSDN es About Memory Management.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language