编译器警告(等级 4)C4703

使用了可能未初始化的局部指针变量“name”

备注

本地指针变量 name 可能已被使用但未赋值。 此访问可能导致不可预测的结果。

/sdl(启用附加安全检查)编译器选项会将此警告升级为错误。

示例

以下代码生成了 C4701 和 C4703。

#include <malloc.h>

void func(int size)
{
    void* p;
    if (size < 256) {
        p = malloc(size);
    }

    if (p != nullptr) // C4701 and C4703
        free(p);
}

int 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

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

#include <malloc.h>

void func(int size)
{
    void* p = nullptr;
    if (size < 256) {
        p = malloc(size);
    }

    if (p != nullptr)
        free(p);
}

int main()
{
    func(9);
}

另请参阅

编译器警告(等级 4)C4701
警告、/sdl 和改进未初始化变量检测