C6388
Warnung C6388: <Argument> kann nicht <Wert> sein: Dies entspricht nicht der Funktionsspezifikation von <Funktionsname>: Zeilen: x, y
Diese Warnung gibt an, dass im angegebenen Kontext ein unerwarteter Wert verwendet wird. Diese Warnung wird i. d. R. gemeldet, wenn Werte als Argumente an eine Funktion übergeben werden, die nicht erwartet wurden.
Beispiel
Der folgende C++-Code generiert diese Warnung, weil DoSomething einen NULL-Wert erwartet, aber ein potenzieller Wert, der nicht NULL ist, möglicherweise übergeben wird:
#include <string.h>
#include <malloc.h>
#include <codeanalysis\sourceannotations.h>
using namespace vc_attributes;
void DoSomething( [Pre( Null=Yes )] void* pReserved );
void f()
{
void* p = malloc( 10 );
DoSomething( p ); // C6388
// code...
free(p);
}
So korrigieren Sie die Warnung unter Verwendung des folgenden Beispielcodes
#include <string.h>
#include <malloc.h>
#include <codeanalysis\sourceannotations.h>
using namespace vc_attributes;
void DoSomething( [Pre( Null=Yes )] void* pReserved );
void f()
{
void* p = malloc( 10 );
if (!p)
{
DoSomething( p );
}
else
{
// code...
free(p);
}
}