Zurückgeben eines 2D-Arrays aus einer Funktion in C
Beim Arbeiten mit 2D-Arrays in C ist der im bereitgestellten Code dargestellte Ansatz nicht der Fall empfohlen. Erwägen Sie stattdessen die Implementierung der folgenden Funktion:
int** create2DArray(unsigned height, unsigned width) { int** array2D = 0; array2D = new int*[height]; for (int h = 0; h < height; h++) { array2D[h] = new int[width]; for (int w = 0; w < width; w++) { // Initialize array elements as needed } } return array2D; }
Diese Funktion verwendet die Höhe und Breite des gewünschten 2D-Arrays als vorzeichenlose Ganzzahlen und weist ihm dynamisch Speicher zu. Das äußere Array wird zuerst zugewiesen, und dann werden die inneren Arrays innerhalb der Schleife zugewiesen.
Denken Sie daran, den Speicher nach der Verwendung freizugeben, um Speicherlecks zu verhindern. Dies kann durch Durchlaufen der Elemente und Löschen sowohl der inneren als auch der äußeren Arrays erfolgen.
Beispielverwendung:
int height = 15; int width = 10; int** my2DArray = create2DArray(height, width); // Use the array as needed // ... for (int h = 0; h < height; h++) { delete [] my2DArray[h]; } delete [] my2DArray; my2DArray = 0; // Set pointer to null to prevent dangling pointer
Das obige ist der detaillierte Inhalt vonWie kann ich ein 2D-Array sicher von einer C-Funktion zurückgeben und verwalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!