C6388
Aviso C6388: <argument> Talvez não seja <value>: Isso não adere à especificação para a função < nome da função >: Linhas: x, y
Este aviso indica que um valor inesperado está sendo usado no contexto especificado. Isso normalmente é relatado para valores passados como argumentos para uma função que não espera.
Exemplo
O seguinte código C++ gera este aviso porque FazerAlgo espera um valor nulo, mas um valor potencialmente não-nulo pode ser passado:
#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);
}
Para corrigir esse aviso, use o exemplo de código a seguir:
#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);
}
}