He visto dos estilos de uso sizeof
para operaciones relacionadas con la memoria (como en memset
o malloc
):
sizeof(type)
ysizeof variable
osizeof(variable)
¿Cuál preferiría, o usaría una mezcla de los dos estilos, y cuándo usaría cada estilo? ¿Cuáles son los pros y los contras de cada estilo y cuándo los usa?
Como ejemplo, puedo ver el siguiente par de situaciones en las que un estilo ayuda y el otro no:
Cuando obtienes el puntero indirectamente incorrecto:
type *var;
...
memset(var, 0, sizeof var); /* oops */
Cuando el tipo cambia:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */