Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Rückgabeadresse einer lokalen oder temporären Variablen: optional_context
Bemerkungen
Eine Funktion gibt die Adresse einer lokalen Variablen oder eines temporären Objekts zurück. Lokale Variablen und temporäre Objekte werden zerstört, wenn eine Funktion zurückgibt, sodass die zurückgegebene Adresse ungültig ist.
Entwerfen Sie die Funktion neu, damit sie nicht die Adresse eines lokalen Objekts zurückgibt.
Beispiel
Im folgenden Beispiel wird C4172 generiert:
// 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
}