Autor
|
Tema: [pregunta] memoria dinamica , estandar vs api de windows (Leído 2,203 veces)
|
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
|
|
|
En línea
|
buenas
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
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.
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
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 Una pagina sobre el tema de administración de memoria en MSDN es About Memory Management. Un saludo
|
|
|
En línea
|
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
|
|
|
|
|