scusa eh, la matrice in memoria è comunque un array monodimensionale... ma se non ne conosce il nuemero di colonne come saprà spostarsi correttamente all'elemento n della riga successiva? Certo che non è Excel, ma guardacaso passando un vettore a + dimensioni ad una funzione l'indice delle righe non occorre, ma servono tutti quelli successivi... per quale motivo? semplice, deve conoscere l'esatto numero di elementi per ogni riga (il numero di colonne) se vogliamo che sia in grado di restituirmi elementi appartenenti alle righe successive..
Scusami se metto in dubbio quello che affermi, ma facendo puntare il puntatore al primo elemento della matrice, posso tranquillamente spostarmi (usando l'aritmetica dei puntatori) su tutti gli elementi della matrice, e questa è di n righe...da quel momento in poi ptr lo potrai usare solo come puntatore a quell'array: la riga i della matrice.
codice:#include <stdio.h> struct prova{ int a; int b; }; void function(struct prova *ptrP); int main(){ int i,j; struct prova b[2][3]={ {3,4,6,7,4,9}, {2,4,5,6,7,8} }; function(b[0]); for (j=0; j<2; j++) for (i=0; i<3; i++){ printf("%d-",b[j][i].a); printf("%d\n",b[j][i].b); } return 0;} void function(struct prova *ptrP){ int i; for (i=0; i<6; i++){ (ptrP)->a=23; (ptrP)->b=23; ptrP++; } }

Rispondi quotando