C6387

Actualización: noviembre 2007

C6387

Advertencia C6387: <argumento> puede ser <valor>: no cumple con las especificaciones de la función <nombre de función>: Líneas: x, y

Esta advertencia se produce si se pasa un valor inesperado a un parámetro de función anotado. Por ejemplo, pasar un valor potencialmente null a un parámetro marcado con el atributo [Pre(Null=No)] genera esta advertencia.

Ejemplo

El código siguiente genera esta advertencia porque se pasa un parámetro null a f(char *):

#include <codeanalysis/sourceannotations.h>
using namespace vc_attributes;

[returnvalue:Post(Null=Yes)] char * g();

void f([Pre (Null=No)] char *pch);

void main()
{
    char *pCh=g();
    f(pCh); //C6387
}

Para corregir esta advertencia, utilice el código siguiente:

#include <codeanalysis/sourceannotations.h>
using namespace vc_attributes;

[returnvalue:Post(Null=No)] char * g();

void f([Pre (Null=No)] char *pch);

void main()
{
    char *pCh=g();
    f(pCh);
}

Vea también

Conceptos

Información general sobre anotaciones

Referencia

strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l