Partager via


Durée de vie des objets alloués avec nouveau

Les objets alloués avec l'opérateur de nouveau ne sont pas détruits lorsque la portée dans laquelle elles sont définies est quittée.Étant donné que l'opérateur de nouveau retourne un pointeur aux objets qu'il alloue, le programme doit définir un pointeur avec une portée appropriée pour accéder à ces objets.Par exemple :

// 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.
}

Une fois que le pointeur AnotherArray est hors de portée dans l'exemple, l'objet peut plus être supprimé.

Voir aussi

Référence

l'opérateur new (C++)