Одним из сложных вопросов является работа с массивами данных. Результат некоторых операций не очевиден, даже после нескольких дней разбора кода.
Таким образом можно определить количество элементов в массиве.
На форуме Амперки нашёл замечательный пост из которого приведу цитату: «Макрос ‘sizeof’ возвращает размер памяти в байтах, который требуется для хранения данных того или иного типа. Для того, что бы узнать количество элементов в массиве, нужно общий размер массива разделить на размер каждого элемента, в данном случае тип элемента ‘char *’:
Как оказалось массив не может быть аргументом функции. Если попытаться передать массив в функцию, то в результате обработки массива будут какие-то данные, не соответствующие размерности преобразований. Такое ощущение что данные берутся из какой-то другой области памяти. Народ на форумах говорит что нужно передавать не сам массив, а указатель на массив. Или как вариант создавать и обрабатывать массив прямо в функции.
Вопрос требуется ещё изучить.