Compiler Warning (level 4) C4701

 

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

Potentially uninitialized local variable 'name' used

The local variable name might have been used without being assigned a value. This could lead to unpredictable results.

Example

The following code generates C4701 and C4703.

#include <malloc.h>  
  
void func(int size)  
{  
    void* p;  
    if (size < 256) {  
        p = malloc(size);  
    }  
  
    if (p != nullptr) // C4701 and C4703  
        free(p);  
}  
  
void main()  
{  
    func(9);  
}  
c:\src\test.cpp
(10) : warning C4701: potentially uninitialized local variable 'p' used  
c:\src\test.cpp
(10) : warning C4703: potentially uninitialized local pointer variable 'p' used  
  

To correct this warning, initialize the variable as shown in this example:

#include <malloc.h>  
  
void func(int size)  
{  
    void* p = nullptr;  
    if (size < 256) {  
        p = malloc(size);  
    }  
  
    if (p != nullptr)  
        free(p);  
}  
  
void main()  
{  
    func(9);  
}  

See Also

Compiler Warning (level 4) C4703
Warnings, /sdl, and improving uninitialized variable detection