Bei der Programmierung müssen Rechendaten gespeichert werden. Diese Daten werden im Speicher gespeichert. Die Speicherorte zum Speichern von Daten in der Computerprogrammierung sind als Variablen bezeichnet. Die Variablen haben einen bestimmten Datentyp. Daher wird der Speicher für die Ausführung der Programme zugewiesen. Das Gedächtnis kann auf zwei Arten zugewiesen werden. Sie sind statische Speicherzuweisung und dynamische Speicherzuweisung. Bei der statischen Speicherzuweisung kann der Speicher, sobald er zugewiesen ist, nicht geändert werden. Das Gedächtnis ist nicht wiederverwendbar. In der dynamischen Speicherzuweisung kann jedoch der Speicher zugewiesen werden, sobald er geändert werden kann. Der Schlüsselunterschied Zwischen statischer und dynamischer Speicherzuweisung ist das Bei der statischen Speicherzuweisung, sobald der Speicher zugewiesen ist.
1. Überblick und wichtiger Unterschied
2. Was ist die statische Speicherzuweisung
3. Was ist dynamische Speicherzuweisung
4. Ähnlichkeiten zwischen statischer und dynamischer Speicherzuweisung
5. Seite für Seitenvergleich - statische vs dynamische Speicherzuweisung in tabellarischer Form
6. Zusammenfassung
In der statischen Speicherzuweisung ist der zugewiesene Speicher behoben. Sobald der Speicher zugewiesen ist, kann er nicht geändert werden. Das Gedächtnis kann nicht erhöht oder verringert werden. Zum Beispiel in der C -Sprache, wenn der Programmierer int x schreibt, was bedeutet, dass die Variable einen Ganzzahlwert speichern kann. Die Anzahl der Bytes hängt vom Computer ab. Es kann auch Arrays geben. E.G. int x [5]; Dieses X ist ein Array, das eine Abfolge von Daten speichern kann, die vom gleichen Typ sind. Es kann fünf Ganzzahlelemente speichern. Es kann nicht mehr als fünf Elemente speichern. In Java kann ein Array als int arr [] = new int [5] erstellt werden; Das Array 'arr' kann 5 Ganzzahlwerte speichern und kann nicht mehr speichern.
Abbildung 01: Speicherzuweisungsmethoden
In der statischen Speicherzuweisung bleiben die Variablen, sobald sie zugewiesen sind, dauerhaft. Nach der anfänglichen Zuordnung kann der Programmierer den Speicher nicht ändern. Wenn der Programmierer ein Array zugewiesen hat, das 10 Elemente speichern kann, ist es nicht möglich, Werte mehr als diesen angegebenen Betrag zu speichern. Wenn der Programmierer zunächst ein Array zuteil. Dieser Gedächtnis ist nicht mehr benötigt, aber es ist auch nicht möglich, den Speicher wiederzuverwenden. Die statische Speicherzuweisung ist festgelegt, aber die Implementierung ist einfach und einfach und auch schnell.
Manchmal ist es notwendig, die Größe des Speichers zu ändern. Der Speicher kann also dynamisch zugewiesen werden. Abhängig von Einfügen und Löschungen der Datenelemente kann der Speicher wachsen oder schrumpfen. Es ist als dynamische Speicherzuweisung bekannt.
In C -Sprache stdlib.H Header -Datei, es gibt vier Funktionen für die dynamische Speicherzuweisung. Sie sind Calloc, Malloc, Realloc und kostenlos. Die Funktion malloc () weist eine erforderliche Größe von Bytes zu und gibt einen Hohlraumzeiger zurück, wodurch das erste Byte des zugewiesenen Speichers verweist. Die Funktion CALLOC () weist eine erforderliche Größe von Bytes zu und initialisiert sie auf Null. Gibt dann einen leeren Zeiger zum Speicher zurück. Die Funktion Free () wird verwendet, um den zugewiesenen Speicher neu zuzuweisen. Und Realloc -Funktion kann den zuvor zugewiesenen Speicher ändern. Nach der Zuweisung von Speicher mit Calloc oder Malloc ist die Speichergröße festgelegt, kann jedoch mit der Realloc -Funktion erhöht oder verringert werden. In Java können Sammlungen zur dynamischen Speicherzuweisung verwendet werden.
Der Hauptvorteil der dynamischen Speicherzuweisung besteht darin, dass es Speicher speichert. 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 befreien, wenn er nicht erforderlich ist. Die dynamische Speicherzuweisung ist ebenfalls effizient als die statische Speicherzuweisung. Ein Nachteil ist, dass die Implementierung der dynamischen Speicherzuweisung komplex ist.
Statische VS -Dynamic -Speicherzuweisung | |
Die statische Speicherzuweisung ist eine Methode zur Zuweisung von Speicher, und sobald der Speicher zugewiesen ist, ist er festgelegt. | Die dynamische Speicherallokation ist eine Methode zur Zuweisung von Speicher. Sobald der Speicher zugewiesen ist, kann er geändert werden. |
Änderung | |
Bei der statischen Speicherzuweisung ist es nicht möglich, nach der Erstzuweisung die Größe zu ändern. | In der dynamischen Speicherzuweisung kann der Speicher minimiert werden oder entsprechend maximieren. |
Implementierung | |
Die statische Speicherzuweisung ist einfach zu implementieren. | Die dynamische Speicherzuweisung ist komplex zu implementieren. |
Geschwindigkeit | |
Im statischen Speicher ist die Ausführung der Allokation schneller als die dynamische Speicherzuweisung. | Im dynamischen Speicher ist die Ausführung der Allokation langsamer als die statische Speicherzuweisung. |
Speicherauslastung | |
In der statischen Speicherzuweisung kann das nicht verwendete Speicher nicht wiederverwenden. | Die dynamische Speicherzuweisung ermöglicht die Wiederverwendung des Speichers. Der Programmierer kann bei Bedarf mehr Speicher zuweisen . Er kann den Speicher bei Bedarf freigeben. |
In der Programmierung sind die statischen Speicherzuweisung und die dynamische Speicherzuweisung zwei Mechanismen zur Zuweisung von Speicher. Der Unterschied zwischen statischer und dynamischer Speicherzuweisung besteht darin, dass in der statischen Speicherzuweisung nach der Zuordnung des Speichers die Speichergröße festgelegt wird, während in der dynamischen Speicherzuweisung nach dem Speichern der Speichergröße die Speichergröße geändert werden kann. Der Programmierer kann entscheiden, ob der Speicher je nach Anwendung statisch oder dynamisch sein sollte.
Sie können die PDF -Version dieses Artikels herunterladen und ihn für Offline -Zwecke gemäß Citation Note verwenden. Bitte laden Sie die PDF -Version hier herunter: Unterschied zwischen statischer und dynamischer Speicherzuweisung
1.Kayal, Somnath. „Somnath Kayal.Unterschied zwischen statischer Speicherzuweisung und dynamischer Speicherzuweisung, 1. Januar. 1970. Hier verfügbar
2.Tutorialspitze.com. „Arrays in C." Der Punkt. Hier verfügbar
3.Nareshtechnologies. Statischer Speicher gegen dynamisches Speicher | C Sprach -Tutorial, Naresh I Technologies, 19. September. 2016. Hier verfügbar