/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

¿usar delete para liberar memoria reservada con malloc?

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
raul_denia



Registrado: 27 Jun 2007
Mensajes: 6

MensajePublicado: 22/10/2007 12:06 am
Título: ¿usar delete para liberar memoria reservada con malloc?

Hola.

Resulta que tengo que depurar un código de otra persona y he observado que siempre que reserva memoria para estructuras propias, vectores, etc, lo realiza con malloc(), pero luego para liberarla lo realiza con delete().

¿Existe algún problema por utilizar el delete para liberar la memoria reservada por malloc, o seria mejor utilizar el free()?

Gracias
Volver arriba
mamntc02



Registrado: 30 Abr 2007
Mensajes: 248

MensajePublicado: 22/10/2007 1:00 am
Título:

Hola,

Sí q existe problema. Para librerar lo reservado con malloc ó calloc (o realloc) siempre se usar free().
Igualmente para liberar lo reservado con new (ó new []) siempre usar delete (o delete[]).

Saludos.
Volver arriba
guimel



Registrado: 17 Oct 2007
Mensajes: 16

MensajePublicado: 22/10/2007 8:48 am
Título:

Nunca se deben combinar malloc con delete ni new con free.

Para empezar, new y delete no solo reclaman o liberan un bloque de memoria, sino que además, invocan respectivamente al constructor y destructor del objeto al que se aplican.

Pero además, en ninguna parte se dicta que la implementación de new y delete tenga que ser compatible con la de malloc y free, con lo cual el resultado de hacer un malloc y liberarlo con free no está determinada. Indetereminado significa que puede funcionar 1000 veces, y fallar la 1001 (posíblemente delante del jefe/cliente/profesor). Smile
_________________
Las ciencias de la computación están tan poco relacionadas con las computadoras como la astronomía con los telescopios

Edsger Dijkstra
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com