Freigeben über


Compilerwarnung (Ebene 4) C4703

Potenziell nicht initialisierte lokale Zeigervariable 'name' verwendet

Hinweise

Möglicherweise wurde der name der lokalen Zeigervariablen verwendet, ohne einem Wert zugewiesen zu werden. Dieser Zugriff könnte zu unvorhersehbaren Ergebnissen führen.

Die /sdl Compileroption (Zusätzliche Sicherheitsüberprüfungen aktivieren) erhöht diese Warnung auf einen Fehler.

Beispiel

Der folgende Code generiert C4701 und 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

Um diese Warnung zu korrigieren, initialisieren Sie die Variable wie in diesem Beispiel gezeigt:

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

Siehe auch

Compilerwarnung (Ebene 4) C4701
Warnungen, /sdl, und verbessern die Erkennung nicht initialisierter Variablen