C6309
Предупреждение C6309: аргумент <номер> имеет нулевое значение, он не соответствует спецификации функции <функция>.
Это сообщение означает, что код передает указанному интерфейсу API непредвиденный параметр NULL в качестве аргумента. При передаче параметра null функции, ожидающей ненулевой параметр, может возникнуть необрабатываемое исключение.
Пример
В следующем коде создаются предупреждения 6309 и 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
}
Чтобы исправить оба предупреждения, используйте следующий код:
#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());
}