编译器警告(等级 4)C4703

使用潜在的未初始化的局部指针变量“名字”。

局部指针变量 name 可能在没有分配值的情况下被使用。 这可能导致不可预知的结果。

示例

下面的代码生成 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);
}
  
  

若要更正此警告,请如下面的例子所示初始化变量:

#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);
}

请参见

参考

编译器警告(等级 4)C4701

其他资源

警告,/sdl 和改进未初始化的变量检测