ptr +---+ +-----------+ | *-|------> | || || || | +---+ +-----------+ ptr == puntero (*ptr) == registro con campos (*ptr).campo ~~ ptr->campo ========================== void* GLOBAL_secreto = & <<< memoria dinamica >>>; /// Retorna un puntero a un bloque de memoria dinámica de tamaño \c n void* malloc( unsigned n ); /// Retorna a la memoria dinámica el bloque de memoria \c ptr. void free( void* ptr ); // Diagrama malloc() http://www.gotw.ca/images/mill14-figure2.jpg ptr +---\ +---+ | +-+-----------+ | *-|------+ |#| || || || | +---+ +-+-----------+ ptr == puntero (*ptr) == regitro con campos (*ptr).campo ~~ ptr->campo ptr = new TBanana[n]; // ptr = malloc( n * sizeof( TBanana) ); delete [] ptr; // free( ptr ); Persona p = new Persona( args ); // Java no requiere destructores Persona *p = new Persona( args ); // p = malloc( sizeof(Persona) ); p->Persona( args ); delete p; // p->~Persona(); free( p ); Persona * p = new Persona[n]; // p = malloc( sizeof(Persona) * n ); // for (i=0; i0 ) { --i; p[i].~Persona(); } // free( p );