PDA

Visualizza la versione completa : [C++] malloc VS new


pprllo
15-01-2006, 13:01
Perchè e quando preferire malloc a new e viceversa ? New è più OOP-friendly perchè quando viene invocato inizializza gli elementi dell'array, mentre questo non può essere fatto con malloc e quindi si deve ricorrere ad altre procedure di inizializzazione. Però personalmente quando possibile preferisco malloc, prima di tutto per abitudine (:D) ed in secondo luogo per la funzione realloc, che non ha un corrispondente con new e che personalmente trovo estremamente comoda.

oregon
15-01-2006, 13:17
La new/delete e' caratteristica di C++.

La new non si limita ad allocare memoria ma chiama il costruttore dell'oggetto. Nel costruttore dell'oggetto puo' esserci un intero programma (!) che viene eseguito all'atto della creazione dello spazio ... Similmente, la delete, chiama il distruttore ...

La malloc/realloc/free e' utilizzata solamente per gestire memoria.

anx721
15-01-2006, 14:49
le caratteristiche OO non sono mica state introdotte per sport...il doppio step allocazione memoria/inizializzazione è una delle cause principali di bug in c/cc, perche un oggeto dovrebbe sempre esere in uno stato 'ammissibile', invece con malloc ciò no avviene; inoltre new richiama anche i costruttori delle superclassi in modo automatico.

Loading