Is there a way to get the length of an Array when I only know a pointer pointing to the Array?
See the following example
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
(This is a snipplet from Arduino Code – I’m sorry, I don’t “speak” real C).
The easy answer is no, you cannot. You’ll probably want to keep a variable in memory which stores the amount of items in the array.
And there’s a not-so-easy answer. There’s a way to determine the length of an array, but for that you would have to mark the end of the array with another element, such as
-1. Then just loop through it and find this element. The position of this element is the length. However, this won’t work with your current code.Pick one of the above.