数组 C 元素的大小

Size of element of array C

考虑行 <type> array[SIZE_OF_ARRAY];。稍后我需要使用这个数组的一个元素的大小(即 fwrite)。但是我将来可能会更改 <type>,所以不能有固定的大小。我找到的解决方案是使用 sizeof(array[0])。虽然它适用于我的情况,但感觉不是很漂亮,如果数组可能为空,它会 运行 出现问题。有更好的选择吗?

if the array could be empty. Is there a better alternative?

数组不能为空。它可以未初始化。不过这个表达式

sizeof(array[0])

在任何情况下都是有效的,因为在无法访问内存的意义上,操作数是未计算的表达式(尽管表达式本身可以在 运行 时间计算,如果 array[0] 在转一个变长数组)。

另一种表达方式可以类似于

sizeof( *array )

您可以使用任一表达式来达到相同的效果。