Ho una matrice bidimensionale allocata dinamicamente nel mio codice C, nella mia funzione principale. Ho bisogno di passare questo array 2D a una funzione. Poiché le colonne e le righe dell'array sono variabili di tempo di esecuzione, so che un modo per passarlo è:Come passare un array 2D assegnato in modo dinamico a una funzione?
-Passare le righe e le variabili di colonna e il puntatore a quell'elemento [0] [0] dell'array
myfunc(&arr[0][0],rows,cols)
poi nella funzione chiamata, accedere come un 'appiattito fuori' 1D serie come:
ptr[i*cols+j]
Ma io non voglio farlo in quel modo, perché ciò significherebbe un sacco di modifica del codice, poiché in precedenza l'array 2D passato a questa funzione veniva assegnato staticamente con le sue dimensioni note al momento della compilazione.
Quindi, come posso passare un array 2D a una funzione ed essere ancora in grado di usarlo come array 2D con 2 indici come il seguente?
arr[i][j].
Qualsiasi aiuto sarà apprezzato.
Questo è - anche se il codice ha lievi errori nel mem. allocare parte .. ma ottenuto il succo. – goldenmean