共用方式為


C6388

警告 C6388: <引數> 可能不是 <值>: 這樣會違反函式 <函數名稱> 的規格: 行: x, y

這項警告表示在指定的內容中使用未預期的值。這通常是針對當做引數傳遞至不需要此值之函式的值所報告的。

範例

下列 C++ 程式碼會產生這項警告,因為 DoSomething 會需要 null 值,但可能會傳遞可能不是 null 的值:

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

若要更正這則警告,請使用下列範例程式碼:

#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++ Standard Template Library (STL) 提供的機制。其中包括 shared_ptrunique_ptrvector。如需詳細資訊,請參閱智慧型指標 (現代 C++)C++ 標準程式庫參考