C6054
Actualización: noviembre 2007
C6054
Advertencia C6054: La cadena <variable> no puede terminar en cero
Esta advertencia indica que a una función que requiere una cadena terminada en cero se le pasó una cadena no terminada en cero. Una función que espera una cadena terminada en cero excederá el final del búfer para buscar el cero. Este defecto puede producir un error de saturación del búfer explotable o un bloqueo. El programa debe asegurarse de que la cadena finaliza con un cero.
Ejemplo
El código siguiente genera esta advertencia:
#include<codeanalysis\sourceannotations.h>
using namespace vc_attributes;
void f ([Pre(NullTerminated=Yes)] wchar_t* v);
void g ( )
{
wchar_t v[200];
f(v); // C6054 - v is not "null-terminated" before the call to f
}
Para corregir esta advertencia, termine en null v antes de llamar a la función f, como se muestra en el siguiente ejemplo de código:
void g( )
{
wchar_t v[200];
v[0]= '\0';
f(v);
}
Vea también
Conceptos
Información general sobre anotaciones