Widziałem dwa style używania sizeof
do operacji związanych z pamięcią (takie jak w memset
lub malloc
):
sizeof(type)
, isizeof variable
lubsizeof(variable)
Który wolisz, czy użyłbyś kombinacji dwóch stylów i kiedy używałbyś każdego z nich? Jakie są zalety i wady każdego stylu i kiedy go używasz?
Jako przykład widzę następującą parę sytuacji, w których jeden styl pomaga, a drugi nie:
Kiedy pomylisz wskaźnik pośredni wskaźnika:
type *var;
...
memset(var, 0, sizeof var); /* oops */
Kiedy typ się zmienia:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */