Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 查找双*数组C+的大小+;_C++_C_Arrays_Double - Fatal编程技术网

C++ 查找双*数组C+的大小+;

C++ 查找双*数组C+的大小+;,c++,c,arrays,double,C++,C,Arrays,Double,如果我声明了一个double*positions[2]数组,有没有办法找到double*positions[2]数组的实际大小 是否有类似的sizeof函数来查找大小 我尝试了一个示例,但它没有返回大小为4 为什么不使用sizeof? 表情 sizeof( positions ) 将以字节为单位返回数组的大小,该大小等于do2*sizeof(double*) 或者您可以使用标准类std::extent来确定数组中元素的数量。比如说 std::cout << std::extent&

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

是否有类似的
sizeof
函数来查找大小

我尝试了一个示例,但它没有返回大小为
4


为什么不使用
sizeof
? 表情

sizeof( positions )
将以字节为单位返回数组的大小,该大小等于do
2*sizeof(double*)
或者您可以使用标准类
std::extent
来确定数组中元素的数量。比如说

std::cout << std::extent<decltype( positions )>::value << std::endl;
那你应该写

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)

等于5和

sizeof( *position ) / sizeof( **positions )

将等于2

此操作不需要任何代码。数组的长度为
2
。这在编译时就知道了。不,我是说指针数组中存储的元素数。那你为什么不这么问?答案是,如果您只有一个指向数组的指针,则无法找到动态分配数组中有多少个元素。我想问你的问题是,为什么你觉得有必要打电话给
new[]
。通过使用标准容器,您可以避免所有这些问题。实际上,看看您的代码,我想知道您期望的
coord[2]
coord[3]
是什么意思。您这样声明了
coord
double*cord[2]
。你明白那句话中的
2
是什么意思吗。换句话说,如果要使用4个元素,为什么要保留2个?那么如果
double
数组有
5组
x,y
坐标,
sizeof
将返回
5
?@Stu User什么是“x,y坐标集”?!我已经编辑了这个问题,请参考。就像它有5行x,y坐标一样,
size of
return 5?@Stu User sizeof操作符返回数组的大小(以字节为单位)。它不计算例如一个数组有5个double类型的元素,那么操作符将返回5*sizeof(double)。如果需要知道数组中的元素数,应该使用表达式sizeof(array)/sizeof(double)或class std:;如我所示的范围。谢谢,所以我需要执行
sizeof(positions)/sizeof(double)
来获取元素的数量?
sizeof( position ) / sizeof( *positions )
sizeof( *position ) / sizeof( **positions )