Tableau de structures en C

Lorsqu’il s’agit de traiter un vaste ensemble de données connexes et différents types de données, il est crucial de les organiser et de les gérer efficacement. En programmation C, la combinaison de tableaux et de structures, c'est-à-dire un tableau de structures, fournit un outil puissant pour gérer cela. Dans cet article, nous discutons du concept de tableau de structures en C.

Qu’est-ce qu’un tableau ?

Le tableau est une collection homogène d’éléments stockés dans l’emplacement mémoire continu. La taille du tableau est fixe et on peut accéder aléatoirement aux éléments en utilisant leur index.

Déclaration du tableau

array_type   array_name  [size]; 

Qu’est-ce que la structure ?

La structure est l'un des types de données définis par l'utilisateur en C qui peut contenir des éléments de différents types en tant que membres.

Déclaration d'une structure en C

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

Tableau de structures

Un tableau dont les éléments sont de type structure est appelé tableau de structure. C'est généralement utile lorsque nous avons besoin de plusieurs variables de structure dans notre programme.

Besoin d'un ensemble de structures

Supposons que nous ayons 50 employés et que nous devions stocker les données de 50 employés. Donc pour cela, nous devons définir 50 variables de type struct Employee et y stocker les données. Cependant, déclarer et gérer les 50 variables n’est pas une tâche facile. Imaginons un scénario plus grand, comme 1 000 employés.

Donc, si nous déclarons la variable de cette façon, il n’est pas possible de gérer cela.

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

Pour cela, nous pouvons définir un tableau dont le type de données sera struct Employee soo qui sera facilement gérable.

Déclaration de tableau de structures

  struct     structure_name array_name   [number_of_elements]; 

Initialisation du tableau de structures

Nous pouvons initialiser le tableau de structures des manières suivantes :

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

La même initialisation peut également être effectuée comme suit :

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

Les compilateurs GNU C prennent en charge l'initialisation désignée pour les structures, nous pouvons donc également l'utiliser dans l'initialisation d'un tableau de structures.

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

Exemple de tableau de structure en C

C




// 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;> }>

Sortir

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