다음을 통해 공유


컴파일러 경고(수준 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초기화되지 않은 변수 검색 개선