Freigeben über


Compilerwarnung (Ebene 1) C4172

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
}