共用方式為


警告 C6388

' argument ' 可能不是 ' value ':這不符合函式 ' function-name ' 的規格: Lines: x, y

備註

這個警告表示指定的內容中正在使用非預期的值。 當做引數傳遞至不預期值的函式時,通常會回報此警告。

程式碼分析名稱: INVALID_PARAM_VALUE_2

範例

下列程式碼會產生警告 C6388,因為 DoSomething 預期會有 Null 值,但可能傳遞非 Null 值:

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

malloc 記憶體流失和例外狀況方面,使用 和 free 有許多陷阱。 若要完全避免這類洩漏和例外狀況問題,請使用 C++ 標準程式庫 (STL) 所提供的機制。 這些包括 shared_ptrunique_ptr 和 容器,例如 vector 。 如需詳細資訊,請參閱 智慧型指標 C++ 標準程式庫