Compiler Warning (level 1) C4172


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Compiler Warning (level 1) C4172.

returning address of local variable or temporary

A function returns the address of a local variable or temporary object. Local variables and temporary objects are destroyed when a function returns, so the address returned is not valid.

Redesign the function so that it does not return the address of a local object.

The following sample generates C4172:

// C4172.cpp  
// compile with: /W1 /LD  
float f = 10;  
const double& bar() {  
// try the following line instead  
// const float& bar() {  
   return f;   // C4172