C6388
Ostrzeżenie C6388: <argument> nie może być <value>: nie pasuje to do specyfikacji funkcji <function name>: linie: x, y
To ostrzeżenie wskazuje, że w określonym kontekście używana jest nieoczekiwana wartość.Zazwyczaj jest to zgłoszone dla wartości przekazywanych jako argumenty do funkcji, która tego nie oczekuje.
Przykład
Poniższy kod języka C++ generuje to ostrzeżenie, ponieważ DoSomething oczekuje wartości null, ale potencjalnie niezerowa wartość może być przekazana:
#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);
}
Aby poprawić to ostrzeżenie, należy użyć przykładowego kodu:
#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);
}
}