Heim > Backend-Entwicklung > C++ > Woher weiß „delete[]' die Größe des Arrays, das freigegeben werden soll?

Woher weiß „delete[]' die Größe des Arrays, das freigegeben werden soll?

Mary-Kate Olsen
Freigeben: 2024-12-27 16:11:10
Original
793 Leute haben es durchsucht

How Does `delete[]` Know the Size of the Array to Deallocate?

Speichern von Array-Metadaten für den Vorgang „delete[]“

Der Operator „delete[]“ in C ist für die Freigabe des zugewiesenen Speichers verantwortlich ein Array, erfordert jedoch nicht explizit die Größe des Arrays als Operanden. Dies wirft die Frage auf: „Wie bestimmt ‚delete[]‘ die Größe des Arrays, dessen Zuordnung aufgehoben werden soll?“

Um diesen Mechanismus zu verstehen, ist es wichtig, die Rolle des Speicherzuweisers zu erkennen. Wenn Speicher auf dem Heap mit dem „new“-Operator zugewiesen wird, verwaltet der Speicherzuweiser den zugewiesenen Speicher und verfolgt seine Größe. Diese Informationen werden normalerweise in einem „Kopf“-Segment unmittelbar vor dem zugewiesenen Speicher gespeichert.

Bei Arrays enthält das Kopfsegment die Anzahl der Elemente im Array, was dem Operator „delete[]“ ermöglicht Bestimmen Sie die Größe des Arrays, dessen Zuordnung aufgehoben werden muss. Diese Standardisierung ermöglicht es dem Operator „delete[]“, auch ohne explizite Angabe der Array-Größe erfolgreich die richtige Menge an Speicher freizugeben.

Das obige ist der detaillierte Inhalt vonWoher weiß „delete[]' die Größe des Arrays, das freigegeben werden soll?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage