Compartir a través de


Duración de los objetos Allocated con nuevo

Los objetos asignados con el operador de nuevo no se destruyen cuando se sale del ámbito en el que se definen.Porque el operador de nuevo devuelve un puntero a los objetos que asigna, el programa debe definir un puntero con ámbito adecuado para tener acceso a esos objetos.Por ejemplo:

// expre_Lifetime_of_Objects_Allocated_with_new.cpp
// C2541 expected
int main()
{
    // Use new operator to allocate an array of 20 characters.
    char *AnArray = new char[20];

    for( int i = 0; i < 20; ++i )
    {
        // On the first iteration of the loop, allocate
        //  another array of 20 characters.
        if( i == 0 )
        {
            char *AnotherArray = new char[20];
        }
    }

    delete [] AnotherArray; // Error: pointer out of scope.
    delete [] AnArray;      // OK: pointer still in scope.
}

Una vez que el puntero AnotherArray sale del ámbito en el ejemplo, el objeto se puede eliminar no más.

Vea también

Referencia

operador new (C++)