Я бачив два стилі використання sizeof
для операцій, пов’язаних з пам'яттю (наприклад, в memset
або malloc
):
sizeof(type)
, іsizeof variable
абоsizeof(variable)
Який із них ви б віддали перевагу, чи ви б використали поєднання двох стилів, і коли ви використовували б кожен стиль? Які плюси і мінуси кожного стилю і коли ви їх використовуєте?
Як приклад, я бачу такі пари ситуацій, коли один стиль допомагає, а інший -
Якщо ви невірно визначили непряме вказівник:
type *var;
...
memset(var, 0, sizeof var); /* oops */
Коли тип змінюється:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */