C6054
Mise à jour : novembre 2007
C6054
Avertissement C6054 : La chaîne <variable> peut ne pas se terminer par zéro
Cet avertissement indique qu'une fonction qui requiert une chaîne se terminant par zéro est passée à une chaîne ne se terminant pas par zéro. Une fonction qui attend une chaîne se terminant par zéro va au-delà de la fin de la mémoire tampon pour rechercher la valeur zéro. Ce défaut peut provoquer une erreur de dépassement de mémoire tampon ou une panne exploitable. Le programme doit vérifier que la chaîne se termine par zéro.
Exemple
Le code suivant génère cet avertissement :
#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
}
Pour corriger cet avertissement, terminez v par zéro avant d'appeler la fonction f, comme indiqué dans l'exemple de code suivant :
void g( )
{
wchar_t v[200];
v[0]= '\0';
f(v);
}
Voir aussi
Concepts
Vue d'ensemble de l'annotation