sizeof
メモリ関連の操作(in memset
やなどmalloc
)に使用する2つのスタイルを見てきました。
sizeof(type)
、そしてsizeof variable
またはsizeof(variable)
どちらを好むか、2つのスタイルを組み合わせて使用しますか。また、各スタイルをいつ使用しますか。各スタイルの長所と短所、およびそれらを使用するときは何ですか?
例として、一方のスタイルが役立ち、もう一方のスタイルが役立たない次のような状況を見ることができます。
ポインターの間接指定が間違っている場合:
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 */