Ritorna alla pagina del corso.
Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.
01: /*
02: 5. Allocazione dinamica array bidimensionali: si chieda all'utente le
03: dimensioni di una matrice, si allochi dinamicamente una matrice di
04: float avente quelle dimensioni (usando **), si leggano da tastiera
05: gli elementi della matrice e la si stampi (in maniera ordinata)
06: */
07: #include<stdio.h>
08: #include<stdlib.h>
09:
10: int main(int argc, char **argv){
11:
12: int r,c;
13: printf("Inserire righe e colonne della matrice desiderata: ");
14: scanf("%d%d", &r, &c);
15:
16: float **matr;
17:
18: // 1. alloco array di r puntatori per ciascuna riga
19: matr = malloc(r * sizeof(float *));
20:
21: // 2. alloco le r righe usando il precedente array
22: for(int ir = 0; ir < r; ++ir)
23: matr[ir] = malloc(c * sizeof(float));
24:
25:
26: // da questo momento in poi la sintassi per l'uso
27: // degli elementi allocati dinamicamente e' la stessa
28: // di un array bidimensionale!
29:
30:
31:
32: // chiedo all'utente i valori della matrice
33: for(int ir = 0; ir < r; ++ir)
34: for(int ic = 0; ic < c; ++ic)
35: {
36: printf("Inserisci il valore di indici (%d, %d): ", ir, ic);
37: scanf("%f", &matr[ir][ic] ); // sintassi identica array bidimensionali statici
38: }
39:
40:
41: // TODO completare
42:
43:
44:
45: return 0;
46: }
47:
48: