Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
sizeofel operador aplicado a una expresión con un operador puede producir resultados inesperados
Comentarios
El operador sizeof, cuando se aplica a una expresión, produce el tamaño del tipo de la expresión resultante.
Nombre de análisis de código: SIZEOFEXPR
Ejemplo
El código siguiente genera esta advertencia. Dado que a - 4 es una expresión, sizeof devolverá el tamaño del puntero resultante, no el tamaño de la estructura que se encuentra en ese puntero:
void f( )
{
size_t x;
char a[100];
x = sizeof(a - 4);
assert(x == 96); //assert fails since x == sizeof(char*)
}
Para corregir esta advertencia, asegúrese de que está trabajando con el valor devuelto de sizeof, no el argumento para ella:
void f( )
{
size_t x;
char a[100];
x = sizeof(a) - 4;
assert(x == 96); //assert succeeds
}