Unterschied zwischen statischer und dynamischer Speicherzuweisung

Inhaltsverzeichnis:

Unterschied zwischen statischer und dynamischer Speicherzuweisung
Unterschied zwischen statischer und dynamischer Speicherzuweisung

Video: Unterschied zwischen statischer und dynamischer Speicherzuweisung

Video: Unterschied zwischen statischer und dynamischer Speicherzuweisung
Video: Statische vs. Dynamische Investitionsrechungen - Welche sind besser? 2024, Juli
Anonim

Hauptunterschied – Statische vs. dynamische Speicherzuweisung

Beim Programmieren ist es notwendig, Rechendaten zu speichern. Diese Daten werden im Speicher abgelegt. Die Speicherorte zum Speichern von Daten in der Computerprogrammierung werden als Variablen bezeichnet. Die Variablen haben einen bestimmten Datentyp. Daher wird der Speicher zugewiesen, um die Programme auszuführen. Speicher kann auf zwei Arten zugewiesen werden. Sie sind statische Speicherzuweisung und dynamische Speicherzuweisung. Bei der statischen Speicherzuweisung kann der einmal zugewiesene Speicher nicht mehr geändert werden. Der Speicher ist nicht wiederverwendbar. Aber bei der dynamischen Speicherzuweisung kann der einmal zugewiesene Speicher geändert werden. Der Hauptunterschied zwischen statischer und dynamischer Speicherzuweisung besteht darin, dass bei der statischen Speicherzuweisung nach der Zuweisung des Speichers die Speichergröße festgelegt ist, während bei der dynamischen Speicherzuweisung die Speichergröße nach der Zuweisung des Speichers geändert werden kann.

Was ist statische Speicherzuweisung?

Bei der statischen Speicherallokation ist der zugewiesene Speicher fest. Sobald der Speicher zugewiesen ist, kann er nicht mehr geändert werden. Der Speicher kann nicht erhöht oder verringert werden. Wenn der Programmierer beispielsweise in der Sprache C int x schreibt, bedeutet dies, 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. Ganzzahl x [5]; Dieses x ist ein Array, das eine Folge von Daten gleichen Typs speichern kann. Es kann fünf ganzzahlige Elemente speichern. Es kann nicht mehr als fünf Elemente speichern. In Java kann ein Array wie folgt erstellt werden: int arr=new int[5]; Das Array ‚arr‘kann 5 Integer-Werte speichern und nicht mehr als das.

Unterschied zwischen statischer und dynamischer Speicherzuweisung
Unterschied zwischen statischer und dynamischer Speicherzuweisung
Unterschied zwischen statischer und dynamischer Speicherzuweisung
Unterschied zwischen statischer und dynamischer Speicherzuweisung

Abbildung 01: Speicherzuweisungsmethoden

Bei der statischen Speicherzuweisung bleiben die einmal zugewiesenen Variablen permanent. Nach der anfänglichen Zuordnung kann der Programmierer die Größe des Speichers nicht ändern. Wenn der Programmierer ein Array zugewiesen hat, das 10 Elemente speichern kann, ist es nicht möglich, mehr Werte als die angegebene Menge zu speichern. Wenn der Programmierer ursprünglich ein Array zugewiesen hat, das 10 Elemente aufnehmen kann, aber nur 5 Elemente benötigt, dann gibt es eine Speicherverschwendung. Dieser Speicher wird nicht mehr benötigt, aber es ist auch nicht möglich, den Speicher wiederzuverwenden. Die statische Speicherzuweisung ist fest, aber die Implementierung ist einfach und leicht, und sie ist auch schnell.

Was ist dynamische Speicherzuweisung?

Manchmal ist es notwendig, die Speichergröße zu ändern. So kann Speicher dynamisch zugewiesen werden. Abhängig von Einfügungen und Löschungen der Datenelemente kann der Speicher wachsen oder schrumpfen. Dies wird als dynamische Speicherzuweisung bezeichnet.

In der C-Sprache, Header-Datei stdlib.h, gibt es vier Funktionen für die dynamische Speicherzuweisung. Sie sind calloc, malloc, realloc und kostenlos. Die Funktion malloc() weist eine erforderliche Bytegröße zu und gibt einen Leerzeiger zurück, der auf das erste Byte des zugeordneten Speichers zeigt. Die Funktion calloc() weist eine erforderliche Größe von Bytes zu und initialisiert sie auf Null. Gibt dann einen void-Zeiger an den Speicher zurück. Die Funktion free() wird verwendet, um den zugewiesenen Speicher neu zuzuweisen. Und die Realloc-Funktion kann den zuvor zugewiesenen Speicher ändern. Nach der Speicherzuweisung mit calloc oder malloc ist die Speichergröße festgelegt, sie kann jedoch mit der Funktion realloc erhöht oder verringert werden. Collections können in Java für die dynamische Speicherallokation verwendet werden.

Der Hauptvorteil der dynamischen Speicherzuweisung ist, dass sie Speicher spart. Der Programmierer kann nach Bedarf Speicher zuweisen oder den Speicher freigeben. 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 ist, dass die Implementierung der dynamischen Speicherzuweisung komplex ist.

Was sind die Ähnlichkeiten zwischen statischer und dynamischer Speicherzuweisung?

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

Was ist der Unterschied zwischen statischer und dynamischer Speicherzuweisung?

Statische vs. dynamische Speicherzuweisung

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

Zusammenfassung – Statische vs. dynamische Speicherzuweisung

Beim Programmieren sind die statische Speicherzuweisung und die dynamische Speicherzuweisung zwei Mechanismen zur Speicherzuweisung. Der Unterschied zwischen statischer und dynamischer Speicherzuweisung besteht darin, dass bei der statischen Speicherzuweisung nach der Speicherzuweisung die Speichergröße festgelegt ist, während bei der dynamischen Speicherzuweisung die Speichergröße nach der Speicherzuweisung geändert werden kann. Je nach Anwendung kann der Programmierer entscheiden, ob der Speicher statisch oder dynamisch sein soll.

Laden Sie das PDF mit statischer vs. dynamischer Speicherzuweisung herunter

Sie können die PDF-Version dieses Artikels herunterladen und gemäß Zitationshinweis für Offline-Zwecke verwenden. Bitte laden Sie die PDF-Version hier herunter: Unterschied zwischen statischer und dynamischer Speicherzuweisung

Empfohlen: