Прошу объяснить мне как заполнить массив с помощью функции с++

Допустим, что я создал функцию, в которой цикл for заполняет массив пользовательским вводом до предела массива. Однако, позже я осознал, что созданному массиву в функции main() таким образом значения не передать. Поэтому у меня возник вопрос: возможно ли заполнить массив через такую функцию?


Ответы (1 шт):

Автор решения: Yury Plinto

В C/C++ все массивы передаются в функции по указателю. Если Вы передаёте имя массива, то оно тоже понимается как указатель на его первый элемент. Все изменения массива, сделанные внутри функции, будут видны из вызывающей функции (в Вашем случае, видимо, это main). Но тут есть тонкий момент - внутри функции определить размер переданного массива с помощью sizeof нельзя. Если применить sizeof к имени массива там, где массив объявлен (в main), будет возвращено количество байтов, занимаемых массивом (количество элементов в массиве: sizeof(array_name)/sizeof(element_type)). Если применить sizeof к имени массива, переданного внутрь функции, будет возвращён размер указателя в байтах, а не массива (зависит от разрядности Вашей ОС). Поэтому, если длина Вашего массива - не видимая глобально константа, её тоже надо передавать в функцию через параметр.

→ Ссылка