J'ai vu deux styles d'utilisation sizeof
pour les opérations liées à la mémoire (comme dans memset
ou malloc
):
sizeof(type)
, etsizeof variable
ousizeof(variable)
Lequel préféreriez-vous, ou utiliseriez-vous un mélange des deux styles, et quand utiliseriez-vous chaque style? Quels sont les avantages et les inconvénients de chaque style et quand les utilisez-vous?
À titre d'exemple, je peux voir la paire de situations suivante où un style aide et l'autre non:
Lorsque vous obtenez l'indirection du pointeur incorrecte:
type *var;
...
memset(var, 0, sizeof var); /* oops */
Lorsque le type change:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */