경고 C6388

'argument'는 'value'가 아닐 수 있습니다. 'function-name' 함수의 사양을 따르지 않습니다. Lines: x, y

설명

이 경고는 지정된 컨텍스트에서 예기치 않은 값이 사용되고 있음을 나타냅니다. 이 경고는 일반적으로 필요하지 않은 함수에 인수로 전달되는 값에 대해 보고됩니다.

코드 분석 이름: INVALID_PARAM_VALUE_2

예시

다음 코드는 null 값이 필요하지만 잠재적으로 null이 아닌 값이 전달될 수 있으므로 DoSomething 경고 C6388을 생성합니다.

// C6388_warning.cpp
#include <string.h>
#include <malloc.h>
#include <sal.h>

void DoSomething( _Pre_ _Null_ void* pReserved );

void f()
{
    void* p = malloc( 10 );
    DoSomething( p );  // Warning C6388
    // code...
    free(p);
}

이 경고를 수정하려면 다음 샘플 코드를 사용합니다.

// C6388_no_warning.cpp
#include <string.h>
#include <malloc.h>
#include <sal.h>

void DoSomething( _Pre_ _Null_ void* pReserved );
void f()
{
    void* p = malloc( 10 );
    if (!p)
    {
        DoSomething( p );
    }
    else
    {
        // code...
        free(p);
    }
}

메모리 누수 및 free 예외 측면에서 많은 문제를 사용하고 malloc 있습니다. 이러한 종류의 누수 및 예외 문제를 모두 방지하려면 C++ STL(표준 라이브러리)에서 제공하는 메커니즘을 사용합니다. 여기에는 < a0/> unique_ptr및 컨테이너(예: vector.)가 포함shared_ptr됩니다. 자세한 내용은 스마트 포인터 및 C++ 표준 라이브러리를 참조하세요.