Statische Allokation vs. Dynamische Allokation vs. Automatische Zuweisung
Was sind die Unterschiede zwischen der statischen, dynamischen und automatischen Zuweisung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was sind die Unterschiede zwischen der statischen, dynamischen und automatischen Zuweisung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es sprachspezifische details, aber die Allgemeine Idee ist:
Dynamische Zuordnung erfordert ein wenig mehr Erläuterung: es ist zugeteilt, wenn Sie es zuweisen (z.B. mit so etwas wie "neue XXX"). In (den meisten Implementierungen von C++, es wird bestehen, bis Sie Sie explizit löschen. Mit die meisten neueren Sprachen (z.B. Java, C#) es wird existieren, bis der garbage collector bestimmt, dass es nicht mehr zugänglich ist, zu welcher Zeit es werden automatisch zerstört.
Nicht alle Sprachen haben alle drei Formen der Zuordnung. In einigen Fällen (z.B. Java), selbst wenn eine form der Zuordnung gestützt wird, es gibt Einschränkungen, wie z.B. die automatische Zuweisung für built-in Typen, sondern erfordern die dynamische Zuordnung für Objekt-Typen (also Instanzen von Klassen).
Statische Zuordnung ist Speicher, der reserviert wurde für eine Anwendung, wenn es zuerst geladen wird. Dieser Abschnitt des Speichers ist, gehalten zu werden, nur mit dieser Anwendung und ist wieder verfügbar gemacht, sobald das Programm geschlossen ist.
Dynamische Zuordnung von Speicher, die zugewiesen wird, als benötigt wird, und freigegeben/freigegeben, wenn es nicht mehr benötigt wird. Heaps und stacks sind Beispiele für Bereiche der Erinnerung, die kann dynamisch zugewiesen.