Aracılığıyla paylaş


Uyarı C6388

'argument' 'value' olmayabilir: Bu, 'function-name' işlevinin belirtimine uymaz: Satırlar: x, y

Açıklamalar

Bu uyarı, belirtilen bağlamda beklenmeyen bir değerin kullanıldığını gösterir. Bu uyarı genellikle bunu beklemeyen bir işleve bağımsız değişken olarak geçirilen değerler için bildirilir.

Kod analizi adı: INVALID_PARAM_VALUE_2

Örnek

Aşağıdaki kod C6388 uyarısını oluşturur çünkü DoSomething null değer bekler ancak null olmayan bir değer geçirilebilir:

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

Bu uyarıyı düzeltmek için aşağıdaki örnek kodu kullanın:

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

ve free kullanımımalloc, bellek sızıntıları ve özel durumlar açısından birçok tuzaklara sahiptir. Bu tür sızıntıları ve özel durum sorunlarını tamamen önlemek için C++ Standart Kitaplığı (STL) tarafından sağlanan mekanizmaları kullanın. Bunlar , unique_ptrve gibi vectorkapsayıcıları içerirshared_ptr. Daha fazla bilgi için bkz . Akıllı işaretçiler ve C++ Standart Kitaplığı.