logo

Matriz de estructuras en C

Cuando se trata de un gran conjunto de datos relacionados y diferentes tipos de datos, organizarlos y gestionarlos de manera eficiente es crucial. En la programación C, la combinación de matrices y estructuras, es decir, una matriz de estructuras, proporciona una herramienta poderosa para gestionarlo. En este artículo, discutimos el concepto de una matriz de estructuras en C.

cadena.comparar c#

¿Qué es la matriz?

La matriz es una colección homogénea de elementos almacenados en una ubicación de memoria continua. El tamaño de la matriz es fijo y podemos acceder aleatoriamente a los elementos usando su índice.

Declaración de matriz



array_type   array_name  [size];>

¿Qué es la estructura?

La estructura es uno de los tipos de datos definidos por el usuario en C que puede contener elementos de diferentes tipos como miembros.

Declaración de una Estructura en C

  struct   structure_name{    memberType memberName;   ...  ... };>

Conjunto de estructuras

Una matriz cuyos elementos son de tipo estructura se llama matriz de estructura. Generalmente es útil cuando necesitamos múltiples variables de estructura en nuestro programa.

Necesidad de una variedad de estructuras

Supongamos que tenemos 50 empleados y necesitamos almacenar los datos de 50 empleados. Entonces, para eso, necesitamos definir 50 variables de tipo estructura Empleado y almacenar los datos dentro de ellas. Sin embargo, declarar y manejar las 50 variables no es una tarea fácil. Imaginemos un escenario más grande, como 1000 empleados.

Entonces, si declaramos la variable de esta manera, no es posible manejar esto.

struct Employee emp1, emp2, emp3, .. . ... . .. ... emp1000;>

Para eso, podemos definir una matriz cuyo tipo de datos será struct Employee, por lo que será fácilmente manejable.

Declaración de conjunto de estructuras

  struct     structure_name array_name   [number_of_elements];>

Inicialización de una matriz de estructuras.

Podemos inicializar la matriz de estructuras de las siguientes maneras:

  struct     structure_name array_name   [number_of_elements] = {  {element1_value1, element1_value2, ....},  {element2_value1, element2_value2, ....},  ......  ...... };>

La misma inicialización también se puede realizar como:

  struct     structure_name array_name   [number_of_elements] = {  element1_value1, element1_value2 ....,  element2_value1, element2_value2 ..... };>

Los compiladores GNU C admiten la inicialización designada para estructuras, por lo que también podemos usar esto en la inicialización de una matriz de estructuras.

  struct     structure_name array_name   [number_of_elements] = {  {.element3 = value, .element1 = value, ....},  {.element2 = value, .elementN = value, ....},  ......  ...... };>

Ejemplo de matriz de estructura en C

C

variable de bash




// C program to demonstrate the array of structures> #include> > // structure template> struct> Employee {> >char> Name[20];> >int> employeeID;> >int> WeekAttendence[7];> };> > // driver code> int> main()> {> >// defining array of structure of type Employee> >struct> Employee emp[5];> > >// adding data> >for> (>int> i = 0; i <5; i++) {> >emp[i].employeeID = i;> >strcpy>(emp[i].Name,>'Amit'>);> >int> week;> >for> (week = 0; week <7; week++) {> >int> attendence;> >emp[i].WeekAttendence[week] = week;> >}> >}> >printf>(>' '>);> > >// printing data> >for> (>int> i = 0; i <5; i++) {> >printf>(>'Emplyee ID: %d - Employee Name: %s '>,> >emp[i].employeeID, emp[i].Name);> >printf>(>'Attendence '>);> >int> week;> >for> (week = 0; week <7; week++) {> >printf>(>'%d '>, emp[i].WeekAttendence[week]);> >}> >printf>(>' '>);> >}> > >return> 0;> }>

>

de pie
>

Producción

Emplyee ID: 0 - Employee Name: Amit Attendence 0 1 2 3 4 5 6  Emplyee ID: 1 - Employee Name: Amit Attendence 0 1 2 3 4 5 6  Emplyee ID: 2 - Employee Name: Amit Attendence 0 1 2 3 4 5 6  Emplyee ID: 3 - Employee Name: Amit Attendence 0 1 2 3 4 5 6  Emplyee ID: 4 - Employee Name: Amit Attendence 0 1 2 3 4 5 6>