Exporter (0) Imprimer
Développer tout

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.

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

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft