Bei der C -Programmierung nimmt es beim Ausführen eines Programms einen Speicher auf dem System ein. Wenn wir den statischen Speicher verwenden, müssen wir einen festen Speicherblock aus dem System zuweisen. Nach der Ausführung des Programms können zwei Szenarien stattfinden. Das Programm benötigt entweder eine größere Blockgröße als die festgelegte Größe oder es benötigt den Speicherblock mit kleinerer Größe. Wenn der Speicherblock für das ausgeführte Programm geringer wird, sind die Ergebnisse nicht genau und wenn die Blockgröße für das ausgeführte Programm größer ist, ist der verbleibende freie Speicher des Blocks nicht verwendet.
Um dies zu vermeiden, wird es bevorzugt, dynamisches Speicher in der C -Programmierung zu verwenden, die unterschiedliche Funktionen aufweist.
Was ist eine malloc () -Funktion in der C -Programmierung
Wenn wir in der C -Programmierung den statischen Speicher verwenden, können wir die Speichergröße während der Ausführung des Programms nicht ändern. Es ist eine empfohlene Praxis, den dynamischen Speicher in der C -Programmierung zu verwenden, damit die Speichergröße während der Ausführung des Programms verändert werden kann.
Für die Verwendung des dynamischen Speichers müssen wir eine Header -Datei einfügen “Stdlib.H", Dies enthält alle Funktionen des dynamischen Speichers. Der Malloc () ist auch Mitglied von STDLIB.h Bibliothek und wird verwendet, um dem ausgeführten Programm Speicher zuzuweisen. Wenn eine malloc () -Funktion in einem Programm aufgerufen wird, sendet sie eine Anforderung an den Haufen des Systems, der entweder den angeforderten Speicherblock an die MALCOC () -Funktion zuweist oder einen Nullwert zurückgibt, wenn nicht genügend Speicherplatz auf der Haufen.
Der Malloc () fordert den Speicherblock nach dem Bedarf des ausgeführten Programms an. Wenn das Programm erfolgreich ausgeführt wird von anderen Anweisungen.
Die allgemeine Syntax der malloc () -Funktion lautet:
ptr_name = (cast-type*) malloc (Größe);Die Erklärung zur obigen Syntax ist einfach:
Für ein besseres Verständnis werden wir ein Beispiel in Betracht ziehen, eine Datei mit dem Namen von erstellen mal_txt.C und geben Sie das folgende Skript ein:
#enthaltenUm den Mal_txt zu kompilieren.c Datei verwenden wir den GCC -Compiler:
$ GCC MAL_TXT.c -o mal_txtWenn die Datei ohne Fehler erfolgreich zusammengestellt wurde, führen Sie den Code mit dem Befehl aus:
$ ./mal_txtIm obigen Code erstellen wir das Array und drucken die Summe der Elemente des Arrays. Eine detaillierte Erklärung des obigen Programms lautet:
Was ist eine Realloc () -Funktion in der C -Programmierung
Eine weitere Funktion des dynamischen Speichers ist die Funktion von Realloc (), die zum Ändern des Speicherblocks, der der MALDOC () -Funktion zugewiesen wurde. Die oben beschriebene malloc () -Funktion fordert einen Speicherblock aus dem Heap angefordert, um die Größe des Speicherblocks zu ändern.
Die Realloc () -Funktion ist die Kurzform der „Neuzuweisung des Speichers“ und wird verwendet, um die Größe der Speicherblockgröße zu ändern, die vom Heap an malloc () oder calloc () -Funktion zugewiesen wird. Es stört nicht den ursprünglichen Inhalt des Speicherblocks und fordert den neuen Speicherblock vom Heap an und kopiert alle Daten aus dem alten Speicherblock zum neuen Speicherblock, ohne einen Inhalt davon zu stören.
Die allgemeine Syntax der Verwendung der Realloc () -Funktion lautet:
$ ptr = realloc (PTR, Newssize);Die Erklärung der obigen Syntax ist:
Auch hier erstellen wir eine Datei, real_file.C, und schreiben Sie den Code darin, um die Verwendung der Realloc () -Funktion besser zu verstehen:
#enthaltenKompilieren Sie nun die Real_file.C mit dem GCC -Compiler:
$ gcc real_file.c -o real_fileWenn die Datei erfolgreich zusammengestellt wird, führen Sie das Programm mit dem Befehl aus:
$ ./real_fileDie Erklärung des obigen Skripts lautet:
Abschluss
Bei der C -Programmierung ist die dynamische Speicherzuweisung die manuelle Zuordnung des Speichers gemäß den Programmanforderungen. Die Funktionen Malloc () und Realloc () sind Teil des dynamischen Speichers; Malloc () wird für die Speicherzuordnung verwendet und Realloc () wird für die Neuzuweisung des Speichers verwendet. In dieser Beschreibung haben wir beide erklärt; Malloc () und Realloc () Funktionen, wie sie funktionieren und was ist die allgemeine Syntax, beide zu verwenden. Zum besseren Verständnis haben wir die Beispiele für beide Funktionen ausgeführt.