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

Wie konvertiere ich ein 2D-Array in einen Zeiger-zu-Zeiger in C?

Linda Hamilton
Linda HamiltonOriginal
2024-11-12 10:07:01839Durchsuche

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

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

Stellen Sie sich das folgende Szenario vor:

Activity solution[a][b];
// ...
Activity **mother = solution;

In In diesem Fall möchten Sie möglicherweise ein 2D-Objektarray in einen Zeiger-zu-Zeiger konvertieren. Eine direkte Konvertierung ist jedoch aufgrund der Inkompatibilität der Typen nicht möglich.

Einführung eines Zwischenarrays

Um die Lücke zu schließen, führen Sie ein Zwischenarray „Zeilenindex“ ein:

Activity solution[a][b];

Activity *solution_rows[a] = { solution[0], solution[1] /* and so on */ };

Activity **mother = solution_rows;

Dadurch können Sie auf folgende Weise auf Elemente zugreifen:

mother[i][j] = solution[i][j]

Die Konvertierung verstehen

Lösung[i] ist eine Zeiger auf die i-te Zeile des 2D-Arrays. Solution_rows ist ein Array dieser Zeilenzeiger. Daher entspricht „solution_rows[i]“ „solution[i]“.

Wenn Sie „solution_rows“ der Mutter zuweisen, erstellen Sie effektiv einen Zeiger-zu-Zeiger, der auf die ersten Elemente jeder Zeile in der Lösung zeigt.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich 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