В C ++ массивы нельзя передавать просто как параметры. Значение, если я создаю функцию, подобную так:
void doSomething(char charArray[])
{
// if I want the array size
int size = sizeof(charArray);
// NO GOOD, will always get 4 (as in 4 bytes in the pointer)
}
У меня нет возможности узнать, насколько велик массив, поскольку у меня есть только указатель на массив.
Каким образом я могу, не меняя сигнатуру метода, получить размер массива и перебрать его данные?
РЕДАКТИРОВАТЬ: просто дополнение относительно решения. Если массив символов, в частности, был инициализирован так:
char charArray[] = "i am a string";
, тогда \0
уже добавлен в конец массива. В этом случае ответ (помеченный как принятый) работает, так сказать, «из коробки».