Ho visto due stili di usare sizeof
per le operazioni relative alla memoria (come in memset
o malloc
):
-
sizeof(type)
e -
sizeof variable
osizeof(variable)
Quale preferiresti, o useresti un mix dei due stili e quando useresti ogni stile? Quali sono i pro e i contro di ogni stile e quando li usi?
Ad esempio, posso vedere il seguente paio di situazioni in cui uno stile aiuta e l'altro no:
Quando si ottiene il puntatore indiretto errato:
type *var;
...
memset(var, 0, sizeof var); /* oops */
Quando il tipo cambia:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */