Heim >Backend-Entwicklung >C++ >Wie konvertiere ich ein 2D-Array in einen Zeiger-zu-Zeiger 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!