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