Compartir a través de


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);
  }
} 

Vea también

Conceptos

Información general sobre anotaciones