Heim >Backend-Entwicklung >C++ >Wie konvertiert man ein 2D-Array in einen Zeiger-zu-Zeiger in C?

Wie konvertiert man ein 2D-Array in einen Zeiger-zu-Zeiger in C?

Barbara Streisand
Barbara StreisandOriginal
2024-11-13 08:33:02516Durchsuche

How do you Convert a 2D Array to a Pointer-to-Pointer in C  ?

Konvertieren eines 2D-Arrays in einen Zeiger-zu-Zeiger in C

Viele Entwickler befinden sich in einer Situation, in der sie ein 2D-Array in einen Zeiger konvertieren müssen. to-Zeiger in C . Diese Konvertierung ist nicht so einfach, wie es scheint, und es gibt keine direkte Möglichkeit, sie ohne die Einführung eines Zwischenschritts durchzuführen.

Problemstellung

Gegeben ein 2D-Array von Objekten:

Activity solution[a][b];

Das Ziel besteht darin, ihn in einen Zeiger-zu-Zeiger umzuwandeln Darstellung:

Activity **mother = solution;

Lösung

Eine einfache Konvertierung von einem 2D-Array in einen Zeiger-zu-Zeiger funktioniert aufgrund von Typinkompatibilität nicht. Um diese Lücke zu schließen, ist als Zwischenschritt ein zusätzliches „Zeilenindex“-Array erforderlich:

Activity *solution_rows[a] = { solution[0], solution[1], /* etc. */ };
Activity **mother = solution_rows;

Jetzt gewährt der Zugriff auf mother[i][j] Zugriff auf Lösung[i][j]. Dieser Ansatz behält die Semantik des 2D-Arrays bei und stellt gleichzeitig die erforderliche Zeiger-zu-Zeiger-Darstellung bereit.

Das obige ist der detaillierte Inhalt vonWie konvertiert man ein 2D-Array in einen Zeiger-zu-Zeiger in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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