C6334

Aktualisiert: November 2007

C6334

Warnung C6334: Der sizeof-Operator kann bei Anwendung auf einen Ausdruck mit einem Operator unerwartete Ergebnisse aufweisen.

Diese Warnung weist auf eine unsachgemäße Verwendung des sizeof-Operators hin. Der sizeof-Operator erzeugt bei Anwendung auf einen Ausdruck die Größe des Typs für den sich ergebenden Ausdruck.

So wird beispielsweise im folgenden Code:

     char     a[10];
     size_t   x;

     x = sizeof (a - 1);

x der Wert 4 und nicht der Wert 9 zugewiesen, weil der sich ergebende Ausdruck nicht länger ein Zeiger auf das Array a ist, sondern einfach nur ein Zeiger.

Beispiel

Der folgende Code generiert diese Warnung:

void f( )
{   
  size_t x;
  char a[10];

  x= sizeof (a - 4);
  // code...
}

So korrigieren Sie die Warnung unter Verwendung des folgenden Codes

void f( )   
{
  size_t x;
  char a[10];

  x= sizeof (a) - 4;
  // code...
} 

Siehe auch

Referenz

sizeof Operator