Malloc und calloc gibt zwei Speicher -Management-Funktionen in der "C" -Programmiersprache. Programme müssen nicht Bereiche des Speichers zu reservieren, denn das ist in der Regel in der Verantwortung des Betriebssystems. Diese beiden Funktionen sind nicht häufig verwendet und sind nur für die Programme, die nicht auf Standard- Speicher -Management-Prozesse verlassen können benötigt. "C" Programming Language
"C " ist seit langem ein beliebtes Sprache für die Programmierung und Vernetzung Datei-Handling . Es ist eine schwierige Sprache zu lernen , weil seine Stichworte, viel mehr codierte und weniger wie echte Sprache als andere Sprachen wie COBOL, Pascal oder Java sind . "C" ist eng mit dem Unix-Betriebssystem gebunden. In der Tat , Unix in " C " geschrieben Obwohl Unix hat seine eigene Skriptsprache , "C" ist die vorherrschende Sprache für die Programmierung von Unix -basierte Dienste. Wie Speicherzuweisung ist eng mit Betriebssystemen verwandt sind malloc und calloc eher in niedrigen Leistungen in "C" als Client Facing hohe Anwendungen programmiert gefunden werden.
Memory Management
"C "-Programm ist eine Liste von Menschen lesbaren Anweisungen, die auf einem Computer ausgeführt werden können. Das Programm muss zusammengestellt werden, die erzeugt eine Kopie des Programms in maschinenlesbaren Code . Betriebssysteme in der Regel zuweisen Speicherplätze auf die Variablen und Anweisungen des Programms zu der Zeit das Programm kompiliert wird . Variablen sind als Zwischenspeicher für Daten im Verlauf des Programms. Malloc und calloc ein Verfahren zur Zuweisung von Speicher -Adressen zu verzögern, bis das Programm läuft . Dies wird als dynamische Speicherverwaltung .
Malloc und calloc
Sowohl malloc und calloc zuweisen einen Raum in Heap-Speicher für das Programm . Jede Funktion einen Zeiger auf das erste zugeordnete Speicher -Adresse und alle anderen Speicherblöcke sollten aneinander grenzen . Wenn das System nicht über den verfügbaren Speicher , kehren beide Funktionen null . Beide Funktionen behalten Speicher entweder für ganze oder Zeichendaten. In jedem Fall sollte der Speicherblock Größe ein Vielfaches der Größe für diesen Datentyp erforderlich sein . Daher ist es üblich, den sizeof ()-Funktion in der Parameter-Liste sowohl für malloc und calloc für die Blockgröße Argument verwenden, um sicherzustellen , dass die angeforderte Speichergröße ein Vielfaches der vorgesehenen Datentyp ist .
< br > Vergleich
Malloc nimmt ein Argument und weist einen Block von der gewünschten Größe . Calloc nimmt zwei Argumente , die die Anzahl der Blöcke erforderlich ist und die erforderliche Größe für jeden Block sind . Aus diesem Grund wird Malloc beurteilt wird, für eine variable nützlich und calloc besser geeignet ist, Zuweisen von Speicher für eine Anordnung - mit mehreren Elementen. Malloc nicht initialisiert den angeforderten Speicherbereich , während calloc Null füllt es .