Freigeben über


C6334

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

Diese Warnung weist auf eine unsachgemäße Verwendung des Operators sizeof hin.Der Operator sizeof 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