使用指针获取数组的长度

2023-11-24

当我只知道指向数组的指针时,有没有办法获取数组的长度?

请参阅以下示例

int testInt[3];
testInt[0] = 0;
testInt[1] = 1;
testInt[2] = 1;

int* point;
point = testInt;

Serial.println(sizeof(testInt) / sizeof(int)); // returns 3
Serial.println(sizeof(point) / sizeof(int)); // returns 1

(这是 Arduino 代码的一个片段 - 抱歉,我不会“说”真正的 C)。


简单的答案是否定的,你不能。您可能希望在内存中保留一个变量来存储数组中的项目数量。

有一个不那么容易的答案。有一种方法可以确定数组的长度,但为此您必须用另一个元素标记数组的末尾,例如-1。然后循环遍历它并找到这个元素。该元素的位置就是长度。但是,这不适用于您当前的代码。

选择以上其中一项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用指针获取数组的长度 的相关文章

随机推荐