Programmazione C · 3 min read · Nov 24, 2025
Tutorial di programmazione C su Linux parte 27 - Array di strutture

In questa serie di tutorial di programmazione C in corso, abbiamo recentemente discusso delle strutture. Abbiamo già coperto le basi delle strutture, come le strutture possono essere utilizzate con le funzioni, così come il concetto di puntatori a strutture.
Ora, espandendo ulteriormente il concetto di strutture, discuteremo di come creare un array di strutture utilizzando esempi facili da comprendere.
Array di strutture nel linguaggio di programmazione C
Quindi iniziamo. Ecco una semplice struttura chiamata ‘student_details’ che, come puoi vedere, può essere utilizzata per memorizzare il numero di matricola e i voti degli studenti:
struct student_details{
int roll_no;
int marks;
};Ora, supponiamo che ci siano 5 studenti in totale e la richiesta è di accettare input dall’utente riguardo a questi dettagli degli studenti. Un modo per scrivere il codice per questo è:
#include
struct student_details{
int roll_no;
int marks;
};
int main()
{
struct student_details obj1;
struct student_details obj2;
struct student_details obj3;
struct student_details obj4;
struct student_details obj5;
...
...
...
O forse qualcosa del genere:
#include
struct student_details{
int roll_no;
int marks;
};
int main()
{
struct student_details obj1, obj2, obj3, obj4, obj5;
...
...
... Ora, non c’è nulla di sbagliato se segui gli approcci sopra menzionati. L’unica preoccupazione che sorge è se questi approcci siano scalabili. Voglio dire, cosa succede se invece di 5, hai bisogno di creare, diciamo, 50 oggetti o istanze. In quel caso, seguire questi approcci renderà sicuramente la scrittura e la manutenzione del codice molto più complesse.
Quindi c’è una soluzione? Bene, sì. Un modo migliore è creare un array di strutture ‘student_details’. Ecco come:
struct student_details obj[5];Di seguito è riportato un programma completo che utilizza questo array di strutture:
#include
struct student_details{
int roll_no;
int marks;
};
int main()
{
struct student_details obj[5];
int i;
for(i=0;i<5;i++)
{
printf("\n Inserisci il numero di matricola: ");
scanf("%d", &(obj[i].roll_no));
printf("\n Inserisci i voti (su 100): ");
scanf("%d", &(obj[i].marks));
}
printf("\n Ecco i dati che hai inserito::");
for(i=0;i<5;i++)
{
printf("\n Numero di matricola: %d", (obj[i].roll_no));
printf("-- Voti: %d", (obj[i].marks));
}
return 0;
} Quindi qui, abbiamo utilizzato la struttura ‘student_details’ di cui abbiamo discusso in precedenza e creato un array di 5 oggetti del suo tipo. Poi, il programma chiede all’utente di inserire il numero di matricola e i voti degli studenti uno per uno. Le informazioni corrispondenti a ciascuno studente vengono memorizzate in ciascuna istanza dell’array di strutture. E infine, le informazioni memorizzate vengono stampate come output all’utente.
Ecco l’output nel mio caso:
Inserisci il numero di matricola: 1
Inserisci i voti (su 100): 67
Inserisci il numero di matricola: 2
Inserisci i voti (su 100): 73
Inserisci il numero di matricola: 3
Inserisci i voti (su 100): 56
Inserisci il numero di matricola: 4
Inserisci i voti (su 100): 52
Inserisci il numero di matricola: 5
Inserisci i voti (su 100): 85
Ecco i dati che hai inserito::
Numero di matricola: 1-- Voti: 67
Numero di matricola: 2-- Voti: 73
Numero di matricola: 3-- Voti: 56
Numero di matricola: 4-- Voti: 52
Numero di matricola: 5-- Voti: 85Utilizzando questo approccio, puoi facilmente scalare il tuo programma. Questo significa che, anche se ci sono 50 studenti le cui informazioni devono essere memorizzate e stampate, devi solo aumentare la dimensione dell’array a 50 e apportare pochissime modifiche correlate. Il resto del codice rimane lo stesso. Quindi, in poche parole, puoi gestire facilmente la scalabilità quando utilizzi gli array rispetto agli approcci che abbiamo discusso all’inizio del tutorial.
Conclusione
In questo tutorial, abbiamo coperto il concetto di base dell’array di strutture. Utilizzando esempi facili da comprendere, abbiamo discusso perché un array di strutture è importante, quando usarlo e come usarlo. Ti consigliamo di provare gli esempi di questo tutorial sulla tua macchina. E in caso di dubbi o domande, lascia un commento qui sotto.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.