Tengo una matriz bidimensional asignada dinámicamente en mi código C, en la función principal. Necesito pasar esta matriz 2D a una función. Como las columnas y filas de la matriz son variables de tiempo de ejecución, sé que una forma de pasarlo es:¿Cómo pasar una matriz 2D dinámicamente asignada a una función?
-Pass las filas y las variables de columna y el puntero a ese elemento [0] [0] de la matriz
myfunc(&arr[0][0],rows,cols)
luego en la función llamada, acceder a él como un 'aplanada' 1D matriz como:
ptr[i*cols+j]
Pero yo no quiero hacerlo de esa manera, porque eso significaría una gran cantidad de cambio en el código, ya que antes, la matriz 2D pasada a esta función estaba asignada estáticamente con sus dimensiones conocidas en tiempo de compilación
Entonces, ¿cómo puedo pasar una matriz 2D a una función y todavía ser capaz de usarla como una matriz 2D con 2 índices como el siguiente?
arr[i][j].
Cualquier ayuda será apreciada.
Esto es todo, aunque el código tiene pequeños errores en la memoria. alloc parte ... pero entendí la esencia. – goldenmean