C6334
警告 C6334: 將 sizeof 運算子套用至已有一個運算子的運算式,可能會產生未預期的結果
這項警告表示誤用 sizeof 運算子。將 sizeof 運算子套用至運算式時,會產生結果運算式的類型大小。
例如,在下列程式碼中:
char a[10];
size_t x;
x = sizeof (a - 1);
x 將會被指派值 4,而非 9,因為結果運算式不再是陣列 a 的指標,而僅是指標而已。
範例
下列程式碼將產生出這個警告:
void f( )
{
size_t x;
char a[10];
x= sizeof (a - 4);
// code...
}
若要更正這則警告,請使用下列程式碼:
void f( )
{
size_t x;
char a[10];
x= sizeof (a) - 4;
// code...
}