Programación C · 3 min read · Nov 24, 2025
Tutorial de programación en C de Linux parte 27 - Arreglo de estructuras

En esta serie de tutoriales de programación en C, hemos estado discutiendo últimamente sobre estructuras. Ya hemos cubierto los conceptos básicos de las estructuras, cómo se pueden usar las estructuras con funciones, así como el concepto de punteros a estructuras.
Ahora, ampliando aún más el concepto de estructuras, discutiremos cómo crear un arreglo de estructuras utilizando ejemplos fáciles de entender.
Arreglo de estructuras en el lenguaje de programación C
Así que empecemos. Aquí hay una estructura simple llamada ‘student_details’ que, como puedes ver, se puede usar para almacenar el número de matrícula y las calificaciones de los estudiantes:
struct student_details{
int roll_no;
int marks;
};Ahora, supongamos que hay un total de 5 estudiantes, y el requisito es aceptar la entrada del usuario sobre estos detalles de los estudiantes. Entonces, una forma de escribir el código para esto es:
#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 tal vez algo como esto:
#include
struct student_details{
int roll_no;
int marks;
};
int main()
{
struct student_details obj1, obj2, obj3, obj4, obj5;
...
...
... Ahora, no hay ningún problema si sigues los enfoques mencionados anteriormente. La única preocupación que surge es si estos enfoques son escalables. Quiero decir, ¿qué pasa si en lugar de 5, necesitas crear, digamos, 50 objetos o instancias? En ese caso, seguir estos enfoques definitivamente hará que la escritura y el mantenimiento del código sean mucho más complejos.
¿Entonces, hay una solución? Bueno, sí. Una mejor manera es crear un arreglo de la estructura ‘student_details’. Aquí está cómo:
struct student_details obj[5];A continuación se muestra un programa completo que utiliza este arreglo de estructuras:
#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 Ingresa el número de matrícula: ");
scanf("%d", &(obj[i].roll_no));
printf("\n Ingresa las calificaciones (sobre 100): ");
scanf("%d", &(obj[i].marks));
}
printf("\n Aquí están los datos que has ingresado::");
for(i=0;i<5;i++)
{
printf("\n Número de matrícula: %d", (obj[i].roll_no));
printf("-- Calificaciones: %d", (obj[i].marks));
}
return 0;
} Así que aquí, usamos la estructura ‘student_details’ que discutimos anteriormente, y creamos un arreglo de 5 objetos de su tipo. Luego, el programa pide al usuario que ingrese el número de matrícula y las calificaciones del estudiante uno por uno. La información correspondiente a cada estudiante se almacena en cada instancia del arreglo de estructuras. Y finalmente, la información almacenada se imprime como salida al usuario.
Aquí está la salida en mi caso:
Ingresa el número de matrícula: 1
Ingresa las calificaciones (sobre 100): 67
Ingresa el número de matrícula: 2
Ingresa las calificaciones (sobre 100): 73
Ingresa el número de matrícula: 3
Ingresa las calificaciones (sobre 100): 56
Ingresa el número de matrícula: 4
Ingresa las calificaciones (sobre 100): 52
Ingresa el número de matrícula: 5
Ingresa las calificaciones (sobre 100): 85
Aquí están los datos que has ingresado::
Número de matrícula: 1-- Calificaciones: 67
Número de matrícula: 2-- Calificaciones: 73
Número de matrícula: 3-- Calificaciones: 56
Número de matrícula: 4-- Calificaciones: 52
Número de matrícula: 5-- Calificaciones: 85Usando este enfoque, puedes escalar fácilmente tu programa. Esto significa que, incluso si hay 50 estudiantes cuya información necesita ser almacenada e impresa, solo necesitas aumentar el tamaño del arreglo a 50 y hacer muy pocos cambios relacionados. El resto del código permanece igual. Así que, en resumen, puedes manejar la escalabilidad fácilmente al usar arreglos en comparación con los enfoques que discutimos al principio del tutorial.
Conclusión
En este tutorial, cubrimos el concepto básico de arreglo de estructuras. Usando ejemplos fáciles de entender, discutimos por qué un arreglo de estructuras es importante, cuándo usarlo y cómo usarlo. Se te aconseja que pruebes los ejemplos de este tutorial en tu máquina. Y en caso de cualquier duda o consulta, deja un comentario a continuación.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.