Partager via


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

Référence

C6053

NullTerminated