Was ist die dynamische Speicherzuweisung?
Dynamische Speicherzuweisung, auch heap-basierte Speicherzuordnung genannt, ist eine Art von Speicherverwaltung, die durch statische Speicherzuweisung stark kontrastiert wird. In der dynamischen Speicherzuweisung teilt der Programmierer dem Computer genau mit, wie viel Speicher für jedes Programm zugewiesen werden soll und wie lange er am Speicher festhält. Dies löst viele der Probleme, die in der statischen Speicherzuweisung auftreten, wie z. Während es viele Probleme löst, kann der dynamische Speicher zu einem Problem werden, wenn der Programmierer vergisst, den Speicher zu sagen, dass der dynamische Speicher zu einem Problem werden kann. Dies bedeutet, dass der Speicher an Programmen festhält, wenn sie verwendet werden, auch wenn das Programm nicht mehr verwendet wird oder wenn das gehaltene Speicher gefährlich oder ein Hindernis für die Leistung ist. Wenn der Benutzer beispielsweise ein Programm mit dem Ausführen eines Programms mit 2 Megabyte (MB) auf einem 3 -MB -Gerät einnimmt und ein zweites Programm weitere 2 MB benötigt, funktioniert das zweite Programm nicht. Dies liegt daran, dass es nicht en gibtOugh -Speicher im Computer für das andere Programm. Aus diesem Grund verwenden erweiterte Benutzer häufig die dynamische Speicherzuweisung. Der Programmierer kann alles über den Speicher steuern, einschließlich wie lange er an Ressourcen festhält.
Zum Beispiel kann der Programmierer die dynamische Speicherzuweisung so einstellen, dass nur 1 MB oder weniger ein System speichert, um genug Systemspeicher zu sparen, damit andere Programme öffnen können. Dies kann geschehen, weil der statische Speicher normalerweise alles am Programm anhält, während der dynamische Speicher es den Programmierern ermöglicht, es auf einen niedrigeren Wert einzustellen, der einige Daten enthält, aber nicht alles. Gleichzeitig wird ein statischer Speicher noch benötigt und kann in diesem Allokationsschema festgelegt werden.
Ein potenzielles Problem mit der dynamischen Speicherzuweisung - eines, das selten ins Spiel kommt - ist, dass der dynamische Speicher ausfüllt, wenn der Programmierer vergisst, einen Zeitwert festzulegen. Wenn kein Zeitwert festgelegt ist, hält der dynamische Speicher im Gegensatz zum statischen Speicher, der letztendlich den Speicher freigibt, an den Informationen. Wenn das Programm über eine Mülldeponienanwendung verfügt und die meisten dies tun, wird es nach einer bestimmten Zeit aktiviert, um den Speicher zu löschen. Es ist immer noch die beste Praxis, einen Zeitwert für die Speicherzuweisung festzulegen.