segunda-feira, 11 de abril de 2011

Dicas de Programação: Diferenças de new/delete e malloc/free em C++

Geralmente, muita gente não sabe se deve usar malloc ou new em C++...
Eu também não sei direito... :P

Mas pelo que entendi, a instrução new é usada em C++ e a função malloc em C, ou seja, a função malloc é usada quando seu código não utiliza objetos.

Uma coisa é importante: se você utilizar a instrução new, para desalocar, o melhor é utilizar a instrução delete.
Se for a função malloc, utilize sempre a função free para liberar memória.

Ponteiro, instância, objeto... Eita, C++ é muito louco! :P

Um comentário:

Anônimo disse...

malloc é para reservar um espaço de memória. e este espaço pode ser de qualquer tamanho (definido por você) e usado para qualquer coisa. O malloc retorna um ponteiro para o início da memória alocada, e você pode fazer um cast do ponteiro para uma estrutura de dados, deixando ele semelhante ao new. O free libera este espaço alocado.

Já o new, é um malloc específico para seu objeto, que já aloca o espaço correto, reduzindo sua margem de erro. o delete é o free do new =)