如果我声明了double *positions[2]
数组,是否有办法找到double *positions[2]
数组的实际大小?
是否有sizeof
函数来查找大小?
我尝试过一个示例,它不会返回4
答案 0 :(得分:0)
为什么不使用sizeof
?
表达
sizeof( positions )
将以字节为单位返回数组的大小2 * sizeof( double * )
或者,您可以使用标准类std::extent
来确定数组中元素的数量。例如
std::cout << std::extent<decltype( positions )>::value << std::endl;
对于您编辑的帖子,数组的声明与您显示的值不对应。该数组被定义为具有指针作为其元素而不是双值。
如果要定义将使用值
初始化的数组0.1, 2.5
10.0, 56.7
12.4, 20.1
69.9, 69.9
72.1, 45.0
然后你应该写
double positions[5][2] =
{
{ 0.1, 2.5 },
{ 10.0, 56.7 },
{ 12.4, 20.1 },
{ 69.9, 69.9 },
{ 72.1, 45.0 }
};
在这种情况下,sizeof( positions )
将等于5 * 2 * sizeof( double )
或者
sizeof( position ) / sizeof( *positions )
将等于5和
sizeof( *position ) / sizeof( **positions )
将等于2