分享方式:


編譯器警告 (層級 4) C4703

已使用可能未初始化的本機指標變數 '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 和改善未初始化的變數偵測