Ich habe zwei Arten der Verwendung sizeof
für speicherbezogene Vorgänge gesehen (z. B. in memset
oder malloc
):
sizeof(type)
, undsizeof variable
odersizeof(variable)
Welchen würden Sie bevorzugen, oder würden Sie eine Mischung der beiden Stile verwenden, und wann würden Sie jeden Stil verwenden? Was sind die Vor- und Nachteile eines jeden Stils und wann benutzt du sie?
Als Beispiel kann ich die folgenden Situationen sehen, in denen ein Stil hilft und der andere nicht:
Wenn Sie die falsche Zeiger-Indirektion erhalten:
type *var;
...
memset(var, 0, sizeof var); /* oops */
Wenn sich der Typ ändert:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */