Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
}