Ich suche nach einem Beispiel oder einer Erklärung, warum jemand ODER verwenden sollte, um Triple-Pointer in C / C ++ zu verwenden. Gibt es einen Quellcode, in dem Dreifachzeiger auftreten?
Vielen Dank im Voraus.
Edit: Vor allem suche ich nach einem Quellcode, der Triple-Pointer verwendet.
Das beste Beispiel, das Ihnen einfällt, ist eine spärliche Multi-Level-Tabelle. Eine Möglichkeit zum Implementieren von Eigenschaften für Unicode-Zeichen könnte beispielsweise sein:
%Vor% In diesem Fall müsste proptable
einen Tripel-Zeiger-Typ (und möglicherweise einen Vierfach-Zeiger haben, wenn der endgültige resultierende Typ ein Zeigertyp ist). Der Grund dafür, dies als mehrere Ebenen anstatt als eine flache Tabelle zu machen, besteht darin, dass auf der ersten und zweiten Ebene mehrere Einträge auf dieselbe Untertabelle zeigen können, wenn die Inhalte alle gleich sind (z. B. große CJK-Bereiche).
Hier ist ein weiteres Beispiel für eine mehrstufige Tabelle, die ich implementiert habe; Ich kann nicht sagen, dass ich sehr stolz auf das Design bin, aber angesichts der Einschränkungen, die der Code erfüllen muss, ist es eine der am wenigsten schlechten Implementierungsoptionen:
Wenn Sie ein Array von Zeigern an Strings variabler Länge über einen Funktionsparameter zurückgeben müssen:
%Vor%Kompilierter Code.
Wenn Sie eine verkettete Liste verwenden, müssen Sie die Adresse des ersten Elements der Liste ( first pointer )
speichern.
Wenn Sie in dieser Liste ändern müssen, benötigen Sie einen anderen Zeiger ( two pointer)
Wenn Sie Ihre Liste, die Sie ändern, in zwei Zeigern übergeben und in einer anderen Funktion ändern müssen, benötigen Sie einen anderen Zeiger ( three pointer )
...
Sie sind eine Menge Beispiele
Ein sehr einfaches Beispiel ist ein Zeiger auf ein Array von Arrays von Arrays.
Ich habe Triple-Zeiger in C ++ verwendet:
Es gibt eine Schnittstelle, die für ein Java-Programm geschrieben wurde:
und es dauert ein Array von Strings.
%Vor%Dann mache ich in meinem Programm:
%Vor%Aber in C ++ können Sie eine Referenz anstelle eines Zeigers verwenden und daraus wird:
%Vor%Beachten Sie, dass "ButtonTexts" jetzt ein Verweis auf ein Array von C-Style Strings ist.
A char***
kann ein Zeiger auf ein Array von C-Style-Strings sein und das ist ein Mal, dass Sie es verwenden würden.
Triple Pointer ist eine Zeigervariable, die auf einen Zeiger zeigt, der wiederum auf einen anderen Zeiger zeigt. Die Verwendung dieser komplexen Programmiertechnik ist die, in der Unternehmen in der Regel Tonnen und Tonnen von Daten auf einmal verarbeiten. Ein einzelner Zeiger würde auf einen einzelnen Datenblock zeigen (angenommen in einer großen Datei), wobei der Dreifachzeiger 3 Mal ergeben würde schnellere Verarbeitung, da verschiedene Datenblöcke (in der gleichen Datei) durch unterschiedliche Zeiger angezeigt werden können und somit Daten schneller abgerufen / verarbeitet werden können (im Gegensatz zu 1 Zeiger, der die gesamte Datei durchläuft).