Die Struktur ist ein Datentyp, ähnlich dem Array, der in der C-Programmierung verwendet wird. Die Arrays besetzten einige Räume im Speicher des Systems, die entweder dynamisch oder statisch sein können. Die malloc () -Funktion wird für die Deklaration des dynamischen Speichers verwendet.
Ein Array einer Struktur kann entweder mit dem statischen Speicher oder dem dynamischen Speicher deklariert werden. In dieser Beschreibung werden wir das Array von Strukturen mithilfe der MALCOC () -Funktion diskutieren.
So erstellen Sie eine Reihe von Strukturen mit Malloc -Funktion in C
Die Strukturen in der C -Programmierung werden ähnlich wie Klassen verwendet. Die Ausführungszeit der Strukturen ist relativ schneller als die Klassen. Betrachten Sie das Beispiel, um die Struktur zu verstehen:
1 2 3 4 5 6 7 | Struktur Mitarbeiter int emp_id; char emp_name; ; |
Wir haben eine Struktur von “MitarbeiterDas hat zwei weitere Mitglieder; emp_int und emp_char. Wir können ein Array mit den Struct -Mitarbeitern bilden als:
1 | Struct Employees EmployeesData [4]; |
Wir haben ein Array deklariert “Mitarbeiterdata"Verwenden der Struktur"MitarbeiterUnd es gibt 4 Standorte, um die Werte zu speichern. Wenn wir auf die zweiten Elemente des Struct -Arrays zugreifen möchten, die wir verwenden werden, Mitarbeiterdata [1], und in ähnlicher Weise, wenn wir auf die Mitglieder der Elemente zugreifen möchten, die wir verwenden werden, Employedata [1].emp_id.
Hier können wir aber auch die MALCOC () -Funktion verwenden, um die dynamische Speicherzuweisung zu verwenden. Der Vorteil des dynamischen Speichers besteht darin, dass der Raum während der Ausführung des Programms gemäß den Anforderungen verwendet wird. Zu diesem Zeitpunkt verwenden wir die MALOC () -Funktion, die die Anforderung zur Zuweisung eines Speicherblocks zum Heap -Segment des Speichers sendet, der die Daten zufällig speichert. Wenn der Heap -Speicher aufgrund unzureichender Speicherplatz die Anfrage von malloc () nicht unterhalten kann, gibt er die NULL zurück, sonst weist er den angeforderten Block der MALCOC () -Funktion für die Ausführung des Programms zu.
Wenn wir nun die MALCOC () -Funktion für die Deklaration des Arrays von Strukturen verwenden möchten, wird das Programm sein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #enthalten #enthalten int main (int argc, char ** argv) Typedef Struct char* emp_name; int emp_id; Mitarbeiter; int num = 2, i; Mitarbeiter * Employedata = malloc (Num * sizeof * EmployeesData); für (i = 0; i < num; i++) EmployeesData [i].emp_name = (char*) malloc (sizeof (char*)); printf ("Mitarbeitername eingeben:"); scanf ("%s", EmployeesData [i].emp_name); printf ("Mitarbeiter -ID eingeben:"); scanf ("%d", & EmployeesData [i].emp_id); printf („Bitte geben Sie alle Namen von maximal 8 Zeichen \ n“ ein); für (i = 0; i < num; i++) printf ("Mitarbeitername: %s, Mitarbeiter ID: %d \ n", EmployeesData [i].EMP_NAME, EmployeesData [i].emp_id); kostenlos (EmployeesData); return (0); |
Wir werden eine Textdatei, MyFile1, mit Hilfe des Nano -Editors öffnen und das obige Skript einfügen:
1 | $ nano myfile1.C |
Verwenden Sie den GCC -Compiler, um die obige Datei zu kompilieren:
1 | $ gcc myfile1.c -o myfile1 |
Wenn die Datei erfolgreich zusammengestellt ist, führen Sie das Programm mit dem Befehl aus:
1 | $ ./myFile1 |
Die Erklärung des obigen Codes lautet:
Notiz: Wir müssen das verwenden “Typedef Struct"Wenn Sie die Struktur deklarieren, müssen wir das Schlüsselwort nicht verwenden"Struktur”Wiederholt.
Eine andere Sache zu beachten ist, dass der Puffer dazu führen kannchar *”Im Malloc -Argument, um die Größe der zu deklarieren EMP_NAME Variable. Dies führt dazu. Dieser Pufferüberlauf erfolgt nicht ständig (meistens wird er zum Laufzeit automatisch vom Compiler verwaltet).
Wenn Sie die Anzahl der Zeichen für den Mitarbeiternamen nicht einschränken möchten, können Sie einfach zuerst die Eingabe für den Mitarbeiternamen in der für die Schleife in einer neuen Variablen annehmen und diese variable Größe in der Malloc -Funktion übergeben.
Abschluss
Der Strukturdatentyp in der C -Programmierung bietet eine bessere Leistung, wenn wir uns mit kleinen Gruppen derselben Werte befassen müssen. In dieser Beschreibung haben wir die Erstellung von Strukturen mit Arrays unter Verwendung der dynamischen Speicherfunktion, die malloc () -Funktion ist, erörtert. Die malloc () -Funktion verwendet nur so viel Speicherblock, der erforderlich ist.