Saya telah melihat dua gaya penggunaan sizeof
untuk operasi yang berhubungan dengan memori (seperti dalam memset
atau malloc
):
sizeof(type)
, dansizeof variable
atausizeof(variable)
Yang mana yang Anda inginkan, atau Anda akan menggunakan campuran dari dua gaya, dan kapan Anda akan menggunakan masing-masing gaya? Apa pro dan kontra dari masing-masing gaya dan kapan Anda menggunakannya?
Sebagai contoh, saya dapat melihat pasangan situasi berikut di mana satu gaya membantu dan yang lainnya tidak:
Ketika Anda mendapatkan pointer tipuan salah:
type *var;
...
memset(var, 0, sizeof var); /* oops */
Ketika jenisnya berubah:
new_type var; /* changed from old_type to new_type */
...
memset(&var, 0, sizeof(old_type)); /* oops */