Freigeben über


C6054

C6054

Warnung C6054: Die Zeichenfolge <Variable> darf nicht mit 0 (null) enden.

Diese Warnung gibt an, dass an eine Funktion, die eine mit 0 (null) endende Zeichenfolge erfordert, eine Zeichenfolge übergeben wurde, die nicht mit 0 (null) endet. Eine Funktion, die eine mit 0 (null) endende Zeichenfolge erwartet, sucht über das Ende des Puffers hinaus nach 0 (null). Dieser Fehler kann einen als Angriffspunkt geeigneten Pufferüberlauffehler oder einen Absturz verursachen. Das Programm sollte sicherstellen, dass die Zeichenfolge mit einer 0 (null) endet.

Beispiel

Der folgende Code generiert diese Warnung:

#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
}

Um diese Warnung zu korrigieren, legen Sie fest, dass v mit 0 (null) endet, bevor Sie die Funktion f aufrufen, wie im folgenden Beispielcode gezeigt:

void g( )
{
  wchar_t v[200]; 
  v[0]= '\0';
  f(v);
}

Siehe auch

Referenz

C6053
NullTerminated

Konzepte

Übersicht über Anmerkungen