如果我已经声明了double *positions[2]
数组,有没有办法找到double *positions[2]
数组的实际大小?查找double *数组的大小C++
有没有像sizeof
函数来查找大小?
我已经试过的例子,它不会返回的大小4
如果我已经声明了double *positions[2]
数组,有没有办法找到double *positions[2]
数组的实际大小?查找double *数组的大小C++
有没有像sizeof
函数来查找大小?
我已经试过的例子,它不会返回的大小4
为什么不使用sizeof
? 表达
sizeof(positions)
将返回数组的大小以字节等于做2 * sizeof(double *)
或者你可以使用标准的类std::extent
确定数组中元素的NUM BER。例如
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
所以如果'double'数组有'5'集'x,y'坐标,'sizeof'会返回'5'? – 2014-12-05 11:38:57
@Stu用户什么是“一组x,y坐标”? – 2014-12-05 11:39:55
我编辑了这个问题,请参考它。就像它有5行x,y坐标,那么'size-of'会返回5吗? – 2014-12-05 11:43:06
http://stackoverflow.com/questions/492384/how-to-find-the-sizeofa-pointer-pointing- to-an-array – 2014-12-05 11:33:33
你不需要任何代码。数组的长度是'2'。这在编译时已知。 – 2014-12-05 12:06:56
不,我的意思是存储在指针数组内的元素数量 – 2014-12-05 12:08:37