new i delete pozivaju konstruktor i destruktor objekata, dok malloc i free to ne rade. Stoga, najbolje zaboravi malloc i free u C++u.
Štoviše, možeš koristiti i smart pointere. Npr.:
#include <memory>
std::auto_ptr<int> p(new int[100]);
Sada se ne trebaš brinuti niti o dealokaciji pointera p. On će se sam dealocirati kada izađe iz područja definicije. Smart pointerima zapravo si integriraš garbage collector..