Gibt 2D-Arrays in C zurück
Das Zurückgeben eines 2D-Arrays aus einer Funktion in C kann eine knifflige Aufgabe sein. Ein Ansatz, wie durch den bereitgestellten Code demonstriert, versucht, ein 2D-Array mithilfe des unten gezeigten Codes zurückzugeben, aber dieser Ansatz ist nicht geeignet.
int **MakeGridOfCounts() { int cGrid[6][6] = {{0, }, {0, }, {0, }, {0, }, {0, }, {0, }}; return cGrid; }
Stattdessen besteht ein praktikabler Ansatz darin, einen Zeiger auf das zu erstellen und zurückzugeben 2D-Array mit dynamischer Speicherzuweisung. Lassen Sie uns anhand eines verbesserten Codebeispiels untersuchen, wie dies geschieht:
#include <cstdio> int** create2DArray(unsigned height, unsigned width) { .... }
Erstellen Sie das 2D-Array ( create2DArray() ):
int** array2D = new int*[height]; for (int h = 0; h < height; h++) { array2D[h] = new int[width]; . . . }
Das Array zurückgeben (create2DArray() ):
Speicher bereinigen (main() ):
for (int h = 0; h < height; h++) { delete [] array2D[h]; } delete [] array2D;
Dieser Ansatz gewährleistet eine ordnungsgemäße Speicherverwaltung und bietet eine Möglichkeit, a zurückzugeben 2D-Array aus einer Funktion in C .
Das obige ist der detaillierte Inhalt vonWie kann ich ein 2D-Array ordnungsgemäß von einer C-Funktion zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!