C6388
Actualización: noviembre 2007
C6388
Advertencia C6388: <argumento> no puede ser <valor>: no cumple con las especificaciones de la función <nombre de función>: Líneas: x, y
Esta advertencia indica que se utiliza un valor inesperado en el contexto especificado. Se suele mostrar para valores pasados como argumentos a una función que no lo espera.
Ejemplo
El código de C++ siguiente genera esta advertencia porque DoSomething espera un valor null pero se podría pasar un valor potencialmente no nulo:
#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 corregir esta advertencia, utilice el siguiente código de ejemplo:
#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);
}
}