У меня есть двухмерный массив, динамически выделяемый в моем коде C, в моей функции main. Мне нужно передать этот 2D-массив функции.Поскольку столбцы и строки массива являются переменными времени выполнения, я знаю, что один из способов передать это:
-Передать переменные строк и столбцов и указатель на этот [0] [0] элемент массива
myfunc(&arr[0][0],rows,cols)
] затем в вызываемой функции обращайтесь к нему как к «сплющенному» 1D-массиву, например:
ptr[i*cols+j]
Но я не хочу делать это таким образом, потому что это означало бы много изменений в коде, поскольку ранее 2D Переданный в эту функцию массив был статически размещен с известными во время компиляции размерами.
Итак, как я могу передать 2D-массив функции и по-прежнему иметь возможность использовать его как 2D-массив с двумя индексами, как показано ниже?
arr[i][j].
Любая помощь будет принята с благодарностью.