Для передачи двумерного массива в функцию в языке C можно воспользоваться указателями и указывать размеры массива.
Сначала необходимо объявить функцию с параметром-указателем на двумерный массив и указать размеры массива в квадратных скобках:
void myFunction(int (*arr)[N], int rows, int cols) { // тело функции }
Здесь arr
- это указатель на двумерный массив, параметр rows
- количество строк в массиве, а параметр cols
- количество столбцов в массиве. Здесь N
- это константа или переменная, определяющая количество столбцов массива.
Теперь можно передать двумерный массив в эту функцию. Для этого создаем массив и вызываем функцию, передавая ей указатель на массив и его размеры:
int main() { int arr[N][M]; // объявляем двумерный массив // заполняем массив данными myFunction(arr, N, M); // вызываем функцию и передаем массив return 0; }
Внутри функции myFunction
можно обращаться к элементам массива, используя указатель arr
. Например, для доступа к элементу [i][j]
массива можно использовать следующую запись: arr[i][j]
.
Заметьте, что при передаче двумерного массива в функцию используется указатель на тип элементов массива и указываются только размеры массива. Это связано с тем, что в памяти двумерный массив хранится как одномерный массив и доступ к элементам осуществляется по формуле arr[i * кол_столбцов + j]
, где i
- номер строки, а j
- номер столбца. Используя указатель на тип элементов массива, компилятор сам будет осуществлять вычисления указателей и доступ к элементам массива.