Передача массивов в C без использования указателей работает следующим образом: 1
- Вызов функции включает имя массива, которое предоставляет начальный адрес, и целочисленные размеры каждого измерения в качестве отдельных аргументов. 1
- Любая функция, отличная от содержащей определение массива, получает всю информацию о местоположении и размере массива и может работать с любым его элементом. 1
- Поскольку это передача по ссылке, изменения, внесённые вызываемой функцией, будут видны в вызывающей без явного возврата. 1
Для возврата массива из функции в C можно использовать следующие методы: 2
- Динамически выделенный массив. 2 Внутри функции динамически создать массив и вернуть указатель на базовый массив. 2 После выхода из функции динамически выделенный массив нужно удалить с помощью функций delete или free(). 2
- Статический массив. 2 Использовать статическую переменную, чтобы она была доступна во всей программе. 2 Поэтому фактическое расположение в памяти переменной, определённой как статическая переменная внутри функции, будет возвращено. 2