2 Stimmen

Ist es möglich, ein statisch definiertes Array zu deallokieren?

Kann man den Speicher eines mit statischer Zuweisung definierten Arrays freigeben?

6voto

mjv Punkte 70143

Nein, das ist nicht möglich um statisch zugewiesenen Speicher wieder freizugeben.

Je nach Sprache (z. B. C/C++, mit Zeigern) können Sie den Speicher dieses Arrays auch für andere Zwecke verwenden, aber das wird nur Wiederverwendung den Speicher; der Speicher wird nicht freigegeben per-se .

Diese Idee der Wiederverwendung von statischem Speicher für / mit anderen Variablen als den ursprünglich dort definierten, wird nur vorgeschlagen, um die Natur dieser Art der Zuweisung zu verstehen. In der Praxis, insbesondere als Anfänger, macht es absolut keinen Sinn, eine solche Funktion zu benötigen :

  • entweder wird erwartet, dass die Variable eine Lebensdauer hat, die so lang ist wie das Programm
    in diesem Fall sollte sie als statisch deklariert werden
  • oder die Variable wird zu einem bestimmten Zeitpunkt während der Programmausführung nicht benötigt
    in diesem Fall sollte sie dynamisch zugewiesen (? kurz nach/bei der Programminitialisierung) und bei Bedarf wieder freigegeben werden.

3voto

Alex Budovski Punkte 17158

Nein, statische Zuweisung bedeutet, dass sie automatisch zu Beginn des Programms zugewiesen wird, für die gesamte Dauer des Programms gilt und bei Beendigung des Programms automatisch freigegeben wird.

1voto

jldupont Punkte 87330

Kurz gesagt... nein.

Stellen Sie sich diesen Speicher als "anwendungsspezifisch" vor, d. h. er wird entsprechend dem Lebenszyklus der Anwendung zugewiesen und freigegeben.

0voto

Vaka Punkte 1

Ist dies möglich. statische Arrays werden automatisch freigegeben, bevor der Prozess beendet wird.

-1voto

d3vdpro Punkte 2649

Nein... seine nicht möglich, aber wenn Sie zuweisen, dass Array-Zeiger zu anderen Zeiger es Speicher Leck verursachen...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X