C6309
Actualización: noviembre 2007
C6309
Advertencia C6309: El argumento <número> es nulo: éste no cumple con la especificación de la función de <función>
Este mensaje indica que el código está pasando un parámetro NULL inesperado como argumento a la API especificada. Pasar un parámetro null a una función que espera un parámetro no null puede producir una excepción no controlada.
Ejemplo
El código siguiente genera las advertencias 6309 y 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
}
Para corregir ambas advertencias, utilice el código siguiente:
#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());
}