Ostrzeżenie kompilatora (poziom 4) C4703

Używana potencjalnie niezainicjowana lokalna zmienna wskaźnika "name"

Uwagi

Nazwa zmiennej wskaźnika lokalnego mogła zostać użyta bez przypisania wartości. Ten dostęp może prowadzić do nieprzewidywalnych wyników.

Opcja kompilatora /sdl (Włącz dodatkowe kontrole zabezpieczeń) podnosi to ostrzeżenie do błędu.

Przykład

Poniższy kod generuje C4701 i 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

Aby poprawić to ostrzeżenie, zainicjuj zmienną, jak pokazano w tym przykładzie:

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

Zobacz też

Ostrzeżenie kompilatora (poziom 4) C4701
Ostrzeżenia, /sdli ulepszanie niezainicjowanego wykrywania zmiennych