Intelligente Zeiger oder Smartpointer werden in vielen gängigen Programmiersprachen wie etwa C++ verwendet. Es sind spezielle Zeiger, die gegenüber einfachen Zeigervariablen mit zusätzlichen Funktionen und Eigenschaften ausgestattet sind. Intelligente Zeiger erweitern also einfache Zeiger und statten sie mit mehr Funktionalität aus, lassen sich aber wie normale Zeigervariablen benutzen.[1]

Beispiel

Bearbeiten

Um das versehentliche Freigeben von Speicherbereichen zu vermeiden, auf die noch immer von dem einen oder anderen Zeiger verwiesen wird, verwendet man referenzzählende Zeiger. Dazu enthält der intelligente Zeiger eine Zählervariable, die bei jedem Kopieren des Zeigers erhöht wird. Versucht nun ein Programmteil den Speicher freizugeben, auf den der Zeiger verweist, so wird der Wert der Zählervariable zunächst verringert. Erst wenn der Zähler den Wert 0 erreicht, wird der Speicher freigegeben (→ Referenzzählung).

Alternativen

Bearbeiten

Es gibt Programmiersprachen, wie zum Beispiel Oberon, Java oder C# und Laufzeitsysteme, wie zum Beispiel BlackBox Component Builder, Java Runtime Environment (JRE) oder .NET, bei denen die referenzierten Speicherbereiche aller Zeigervariablen „intelligent“ sind und ausschließlich durch eine automatische Speicherbereinigung verwaltet werden.

Bearbeiten

Einzelnachweise

Bearbeiten
  1. Tyler Whitney et al.: Intelligente Zeiger (Modern C++). In: learn.microsoft.com. Microsoft, 16. Juni 2023, abgerufen am 17. September 2023.

📚 Artikel Terkait di Wikipedia

Rust (Programmiersprache)

verwendet werden soll. Zur dynamischen Speicherverwaltung stehen die Smart-Pointer-Typen Box, Rc und der Hilfstyp RefCell zur Verfügung, welche einerseits

C++

Betriebssystem (iostream, fopen, exit, …), Speicherverwaltung (Allocators, Smart Pointer), als auch Schnittstellen zur Entwicklung nebenläufiger Anwendungen

Marcus Smart

als Shooting Guard oder Point Guard auf. Er wurde in der Saison 2021/22 als bester Verteidiger der NBA ausgezeichnet. Smart spielte zwei Jahre für die

Zeiger (Informatik)

zusätzlichen Funktionen und Eigenschaften ausstatten. Z. B. könnte ein smart pointer ein dynamisch alloziertes Speicherobjekt freigeben, sobald die letzte

Speicherleck

mehrere Möglichkeiten: Analyse der Referenzen auf Speicherbereiche (z. B. Smart Pointer); diese Analyse erkennt nur nicht mehr zugreifbare Speicherbereiche

Dreierregel (C++)

klar regeln. Die C++-Standardbibliothek stellt seit C++11 dafür eigene Smart-Pointer-Klassen zur Verfügung: unique_ptr und shared_ptr enthalten zudem eine

Hacks (Fernsehserie)

für Drehbuch, Regie und Hauptdarstellerin (Jean Smart) in einer Comedy-Serie für die erste Staffel. Smart und die Serie wurden außerdem in der TV-Comedy-Sparte

Pufferüberlauf

geschrieben werden soll. In diesem Fall wird von einem ‚pointer overflow‘ (vom englischen pointer, für „Zeiger“) gesprochen. Ein Pufferüberlauf kann zum