数组 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 )
您可以使用任一表达式来达到相同的效果。
考虑行 <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 )
您可以使用任一表达式来达到相同的效果。