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, /sdl
i ulepszanie niezainicjowanego wykrywania zmiennych