查找double * array C ++的大小

时间:2014-12-05 11:31:55

标签: c++ c arrays double

如果我声明了double *positions[2]数组,是否有办法找到double *positions[2]数组的实际大小?

是否有sizeof函数来查找大小?

我尝试过一个示例,它不会返回4

的大小

http://ideone.com/vp3tJz

1 个答案:

答案 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