Was ist ein Array von Zeigern?

Ein Array von Zeigern ist ein Standard-Array-Datentyp, der eine an Datentypen adressierte Speichersequenz enthält, im Gegensatz zu anderen skalaren Typen wie Ganzzahlen oder Gleitkommazahlen. Durch die Verwendung eines Arrays von Zeigern kann ein Programm ein Array von nahezu jedem Datentyp, jeder Datenstruktur, Klasse oder sogar Funktion haben. Eine effiziente Sortierung eines Arrays von Zeigern ist ebenfalls möglich, so dass die Adressen, falls gewünscht, entsprechend ihrem physischen Standort im Computerspeicher ausgerichtet werden können. Einige der Komplikationen bei der Verwendung eines Arrays von Zeigern sind, dass die Daten leicht beschädigt werden können und dass der Datentyp, auf den verwiesen wird, intern verwaltet werden muss, um Speicherüberlaufprobleme zu vermeiden.

Nicht alle Programmiersprachen lassen eine Reihe von Zeigern zu, wie das Konzept ursprünglich gedacht war. Hochrangige Sprachen, die die Speicherverwaltung automatisieren, verwenden Zeiger nicht wie niedrigrangige Sprachen, obwohl technisch gesehen ein Array von Klassenobjekten in einer hochrangigen, objektorientierten Sprache ein Array von Zeigern ist. Trotzdem können sie nicht auf die gleiche Weise verwendet oder manipuliert werden. In einer einfachen Sprache enthält das Array tatsächlich einen ganzzahligen Wert, der die direkte Adresse des Zeigers im Speicherheap ist. In den meisten Hochsprachen ist diese Funktionalität nicht möglich, obwohl alternative Paradigmen existieren.

Einer der Aspekte, der ein Array von Zeigern als Programmierwerkzeug wertvoll macht, ist, dass die Zeiger auf jeden verfügbaren Datentyp verweisen können. Der Zeiger ist selbst ein Datentyp, obwohl er nur dazu dient, auf einen anderen Datentyp zu verweisen. Dies bedeutet, dass ein Array von Zeigern tatsächlich eine Vielzahl von Datentypen in demselben Array enthalten kann, obwohl das Programm einen Mechanismus benötigt, um zu verfolgen, auf was jeder Zeiger verweist.

Ein wichtiger Aspekt von Zeigern ist, dass sie tatsächlich auf kompilierten Programmcode im Speicher verweisen können. Dadurch kann ein Array auf Funktionen verweisen, nicht nur auf Daten. Eine Reihe von Funktionen kann eine dynamische numerische Referenzierung von Code ermöglichen. Dies kann hilfreich sein, wenn Sie einen Sprachinterpreter oder eine andere Art von Software programmieren, die bestimmte Funktionen auf der Grundlage unvorhersehbarer Eingaben aufrufen muss, ohne dass umfangreiche bedingte Anweisungen wie Schaltblöcke erforderlich sind.

Einige Probleme, die von einem Array von Zeigerdaten verursacht werden, sind die Möglichkeit, die Adresse zu verlieren, um zu verhindern, dass dieser Speicher später freigegeben wird, und die Möglichkeit, dass eine Adresse durch eine unbeabsichtigte Operation wie das Hinzufügen beschädigt wird. Der Versuch, auf eine falsche Adresse zuzugreifen, kann dazu führen, dass beschädigte Daten gelesen werden, oder in extremen Fällen, wie z. B. bei einer fehlgeschlagenen Initialisierung, zu einem Segmentierungsfehler, der dazu führen kann, dass das Programm unerwartet beendet wird. Eine vorsichtige Programmierung kann dazu beitragen, die Möglichkeit dieser Ereignisse zu verringern.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?