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_ptr
ve gibi vector
kapsayıcıları içerirshared_ptr
. Daha fazla bilgi için bkz . Akıllı işaretçiler ve C++ Standart Kitaplığı.