我已经看到了两种sizeof
用于与内存相关的操作的样式(例如in 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 */