Unterschied zwischen statischer und dynamischer Speicherzuordnung

Schlüsseldifferenz - Statische vs dynamische Speicherzuordnung
 

Bei der Programmierung müssen Rechendaten gespeichert werden. Diese Daten werden im Speicher abgelegt. Die Speicherplätze zum Speichern von Daten bei der Computerprogrammierung werden als Variablen bezeichnet. Die Variablen haben einen bestimmten Datentyp. Daher wird der Speicher zugewiesen, um die Programme auszuführen. Der Speicher kann auf zwei Arten zugewiesen werden. Sie sind statische Speicherzuordnung und dynamische Speicherzuordnung. Bei der statischen Speicherzuweisung kann der Speicher nach der Zuweisung nicht mehr geändert werden. Der Speicher ist nicht wiederverwendbar. Bei der dynamischen Speicherzuweisung kann der Speicher jedoch einmalig zugewiesen werden. Das Hauptunterschied zwischen statischer und dynamischer Speicherzuordnung ist das Bei der statischen Speicherzuweisung ist die Speichergröße nach der Zuweisung des Speichers festgelegt, während bei der dynamischen Speicherzuordnung die Speichergröße geändert werden kann.

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist statische Speicherzuordnung?
3. Was ist dynamische Speicherzuordnung?
4. Ähnlichkeiten zwischen statischer und dynamischer Speicherzuordnung
5. Side-by-Side-Vergleich - statische und dynamische Speicherzuordnung in Tabellenform
6. Zusammenfassung

Was ist statische Speicherzuordnung??

Bei der statischen Speicherzuordnung ist der zugewiesene Speicher fest. Sobald der Speicher zugewiesen ist, kann er nicht mehr geändert werden. Der Speicher kann nicht vergrößert oder verkleinert werden. In der Sprache C beispielsweise, wenn der Programmierer int x schreibt, was bedeutet, dass die Variable einen ganzzahligen Wert speichern kann. Die Anzahl der Bytes hängt vom Computer ab. Es können auch Arrays vorhanden sein. Z.B. int x [5]; Dieses x ist ein Array, das eine Folge von Daten desselben Typs speichern kann. Es können fünf Ganzzahlelemente gespeichert werden. Es können nicht mehr als fünf Elemente gespeichert werden. In Java kann ein Array erstellt werden als, int arr [] = new int [5]; Das Array 'arr' kann 5 ganzzahlige Werte und nicht mehr als das speichern.

Abbildung 01: Speicherzuweisungsmethoden

Bei der statischen Speicherzuweisung bleiben die Variablen nach der Zuweisung permanent. Nach der anfänglichen Zuweisung kann der Programmierer den Speicher nicht vergrößern. Wenn der Programmierer ein Array zugewiesen hat, das 10 Elemente speichern kann, ist es nicht möglich, Werte zu speichern, die die angegebene Anzahl überschreiten. Wenn der Programmierer anfangs ein Array zugewiesen hat, das 10 Elemente aufnehmen kann, aber nur 5 Elemente benötigt, kommt es zu Speicherverschwendung. Dieser Speicher wird nicht mehr benötigt, der Speicher kann jedoch nicht wiederverwendet werden. Die statische Speicherzuordnung ist festgelegt, aber die Implementierung ist einfach und schnell und auch schnell.

Was ist dynamische Speicherzuordnung??

Manchmal muss die Größe des Speichers geändert werden. So kann der Speicher dynamisch zugewiesen werden. Je nach Einfügungen und Löschungen der Datenelemente kann der Speicher größer oder kleiner werden. Es wird als dynamische Speicherzuordnung bezeichnet.

In der C-Sprache stdlib.h-Header-Datei gibt es vier Funktionen für die dynamische Speicherzuordnung. Sie sind Calloc, Malloc, Realloc und kostenlos. Die Funktion malloc () weist eine erforderliche Byte-Größe zu und gibt einen leeren Zeiger zurück, der auf das erste Byte des zugewiesenen Speichers zeigt. Die Funktion calloc () weist eine erforderliche Größe von Bytes zu und initialisiert sie auf Null. Dann wird ein ungültiger Zeiger auf den Speicher zurückgesetzt. Die free () - Funktion wird verwendet, um den zugewiesenen Speicher neu zuzuordnen. Die Realloc-Funktion kann den zuvor zugewiesenen Speicher ändern. Nach der Zuweisung von Speicher mithilfe von Calloc oder Malloc ist die Speichergröße festgelegt, sie kann jedoch mit der Funktion Realloc erhöht oder verringert werden. In Java können Sammlungen für die dynamische Speicherzuordnung verwendet werden.

Der Hauptvorteil der dynamischen Speicherzuordnung besteht darin, dass Speicherplatz gespart wird. Der Programmierer kann Speicher zuweisen oder den Speicher nach Bedarf freigeben. Der Speicher kann während der Ausführung neu zugewiesen werden und kann den Speicher freigeben, wenn er nicht benötigt wird. Die dynamische Speicherzuweisung ist auch effizienter als die statische Speicherzuweisung. Ein Nachteil besteht darin, dass die Implementierung einer dynamischen Speicherzuordnung komplex ist.

Was sind die Gemeinsamkeiten zwischen statischer und dynamischer Speicherzuordnung??

  • Beides sind Speicherzuweisungsmechanismen.
  • Beide sollten vom Programmierer manuell implementiert werden.

Was ist der Unterschied zwischen statischer und dynamischer Speicherzuordnung??

Statische vs dynamische Speicherzuordnung

Statische Speicherzuordnung ist eine Methode zum Zuweisen von Speicher. Sobald der Speicher zugewiesen ist, ist er fest. Die dynamische Speicherzuweisung ist eine Methode zum Zuweisen von Speicher. Sobald der Speicher zugewiesen ist, kann er geändert werden.
 Änderung
Bei der statischen Speicherzuordnung ist es nicht möglich, die Größe nach der anfänglichen Zuweisung zu ändern. Bei der dynamischen Speicherzuordnung kann der Speicher entsprechend minimiert oder maximiert werden.
Implementierung
Statische Speicherzuordnung ist einfach zu implementieren. Die dynamische Speicherzuweisung ist komplex zu implementieren.
 Geschwindigkeit
Im statischen Speicher ist die Zuweisungsausführung schneller als die dynamische Speicherzuweisung. Im dynamischen Speicher ist die Zuweisungsausführung langsamer als die statische Speicherzuweisung.
Speicherauslastung
Bei der statischen Speicherzuweisung kann der nicht verwendete Speicher nicht wiederverwendet werden. Die dynamische Speicherzuordnung ermöglicht die Wiederverwendung des Speichers. Der Programmierer kann bei Bedarf mehr Speicher zuweisen. Er kann die Erinnerung bei Bedarf freigeben.

Zusammenfassung - Statische vs dynamische Speicherzuordnung

Bei der Programmierung sind statische Speicherzuordnung und dynamische Speicherzuordnung zwei Mechanismen zum Zuweisen von Speicher. Der Unterschied zwischen statischer und dynamischer Speicherzuordnung besteht darin, dass bei einer statischen Speicherzuordnung, sobald der Speicher zugeordnet ist, die Speichergröße fest ist, während bei dynamischer Speicherzuordnung, sobald der Speicher zugeordnet ist, die Speichergröße geändert werden kann. Der Programmierer kann je nach Anwendung entscheiden, ob der Speicher statisch oder dynamisch sein soll.

Laden Sie das PDF-Dokument Static vs Dynamic Memory Allocation herunter

Sie können die PDF-Version dieses Artikels herunterladen und gemäß dem Zitiervermerk für Offline-Zwecke verwenden. Laden Sie die PDF-Version hier herunter: Unterschied zwischen statischer und dynamischer Speicherzuordnung

Referenz:

1.Kayal, Somnath "SOMNATH KAYAL". Unterschied zwischen statischer Speicherzuweisung und dynamischer Speicherzuordnung, 1. Januar 1970. Hier verfügbar 
2. tutorialspoint.com. "Arrays in C." Die Stelle. Hier verfügbar 
3.nährtechnologien. Statischer Speicher vs. dynamischer Speicher | C Language Tutorial, Naresh i Technologies, 19. September 2016. Hier verfügbar