Partager via


Avertissement du compilateur (niveau 1) C4172

adresse de retour de variable locale ou temporaire : optional_context

Remarques

Une fonction retourne l’adresse d’une variable locale ou d’un objet temporaire. Les variables locales et les objets temporaires sont détruits lorsqu’une fonction retourne, de sorte que l’adresse retournée n’est pas valide.

Remaniez la fonction afin qu’elle ne retourne pas l’adresse d’un objet local.

Exemple :

L’exemple suivant génère l’erreur C4172 :

// C4172.cpp
// compile with: /c /W1

const int* func1()
{
    int i = 42;
    return &i;   // C4172
}

float f = 1.f;

const double& func2()
// Try one of the following lines instead:
// const float& func2()
// const auto& func2()
{
    // The problem is that a temporary is created to convert f to a double.
    // C4172 in this case refers to returning the address of a temporary.
    return f;   // C4172
}