当我只知道一个指向数组的指针时,有没有办法得到数组的长度?
参见以下示例

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)标记数组的结尾。然后循环查找这个元素。这个元素的位置是长度。但是,这对您当前的代码不起作用。
从上面选一个。

07-24 18:46