Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
sizeofl'operatore applicato a un'espressione con un operatore può produrre risultati imprevisti
Osservazioni:
L'operatore sizeof , se applicato a un'espressione, restituisce la dimensione del tipo dell'espressione risultante.
Nome dell'analisi del codice: SIZEOFEXPR
Esempio
Il codice seguente genera questo avviso. Poiché a - 4 è un'espressione, sizeof restituirà le dimensioni del puntatore risultante, non le dimensioni della struttura trovata in quel puntatore:
void f( )
{
size_t x;
char a[100];
x = sizeof(a - 4);
assert(x == 96); //assert fails since x == sizeof(char*)
}
Per correggere questo avviso, assicurarsi di usare il valore restituito di sizeof, non con l'argomento:
void f( )
{
size_t x;
char a[100];
x = sizeof(a) - 4;
assert(x == 96); //assert succeeds
}
Vedi anche
sizeof Operator (Operatore sizeof)