logo

Array von Strukturen in C

Beim Umgang mit einer großen Menge zusammengehöriger Daten und unterschiedlicher Datentypen ist deren effiziente Organisation und Verwaltung von entscheidender Bedeutung. In der C-Programmierung stellt die Kombination von Arrays und Strukturen, d. h. Arrays von Strukturen, ein leistungsstarkes Werkzeug zur Verwaltung dar. In diesem Artikel diskutieren wir das Konzept eines Arrays von Strukturen in C.

Namenskonvention Java

Was ist Array?

Das Array ist eine homogene Sammlung von Elementen, die im kontinuierlichen Speicherort gespeichert sind. Die Größe des Arrays ist fest und wir können über ihren Index zufällig auf die Elemente zugreifen.

Array-Deklaration



array_type   array_name  [size];>

Was ist Struktur?

Die Struktur ist einer der benutzerdefinierten Datentypen in C, der als Mitglieder Elemente unterschiedlichen Typs enthalten kann.

Deklaration einer Struktur in C

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

Reihe von Strukturen

Ein Array, dessen Elemente vom Typ Struktur sind, wird als Strukturarray bezeichnet. Dies ist im Allgemeinen nützlich, wenn wir in unserem Programm mehrere Strukturvariablen benötigen.

Bedarf an einer Reihe von Strukturen

Angenommen, wir haben 50 Mitarbeiter und müssen die Daten von 50 Mitarbeitern speichern. Dazu müssen wir also 50 Variablen vom Typ „struct Employee“ definieren und die Daten darin speichern. Allerdings ist die Deklaration und Handhabung der 50 Variablen keine leichte Aufgabe. Stellen wir uns ein größeres Szenario vor, etwa 1000 Mitarbeiter.

Wenn wir die Variable also auf diese Weise deklarieren, ist es nicht möglich, damit umzugehen.

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

Dazu können wir ein Array definieren, dessen Datentyp struct Employee ist, sodass es leicht zu verwalten ist.

Deklaration einer Reihe von Strukturen

  struct     structure_name array_name   [number_of_elements];>

Initialisierung eines Arrays von Strukturen

Wir können das Array von Strukturen auf folgende Weise initialisieren:

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

Die gleiche Initialisierung kann auch wie folgt durchgeführt werden:

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

GNU C-Compiler unterstützen die festgelegte Initialisierung für Strukturen, sodass wir diese auch bei der Initialisierung eines Arrays von Strukturen verwenden können.

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

Beispiel für ein Strukturarray in 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;> }>

>

Java-Rückgabearray

>

Ausgabe

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>