C6309
Warnung C6309: Das Argument <Nummer> ist NULL: Dies entspricht nicht der Funktionsspezifikation von <Funktion>.
Diese Meldung gibt an, dass der Code einen unerwarteten NULL-Parameter als Argument an die angegebene API übergibt. Das Übergeben eines NULL-Parameters an eine Funktion, die einen Parameter erwartet, bei dem es sich nicht um einen NULL-Parameter handelt, kann zu einer nicht behandelten Ausnahme führen.
Beispiel
Der folgende Code generiert die Warnung 6309 und die Warnung 6387:
#include <codeanalysis/sourceannotations.h>
using namespace vc_attributes;
void f([Pre(Null=No)] void*);
[returnvalue:Post(Null=Yes)] void* g();
void main()
{
f(g()); // 6309 and 6387
}
So korrigieren Sie beide Warnungen unter Verwendung des folgenden Codes
#include <codeanalysis/sourceannotations.h>
using namespace vc_attributes;
void f([Pre(Null=No)] void*);
[returnvalue:Post(Null=No)] void* g(); // pointer not null
void main()
{
f(g());
}