Heim >Backend-Entwicklung >C++ >Wie kann ich ein 2D-Array korrekt von einer C-Funktion zurückgeben?
Implementieren einer Funktion zur Rückgabe eines 2D-Arrays in C
Das bereitgestellte Codefragment versucht, ein 2D-Array von einer Funktion zurückzugeben, aber es funktioniert nicht hat ein Problem mit der Array-Deklaration. Um dies zu beheben, können wir eine umfassendere Lösung einführen:
#include <iostream> using namespace std; // Returns a pointer to a newly created 2D array with dimensions [height x width] int** MakeGridOfCounts(int height, int width) { int** grid = new int*[height]; // Dynamically allocate an array of pointers to rows for (int i = 0; i < height; i++) { // Allocate each row and set its columns to 0 grid[i] = new int[width]; fill_n(grid[i], width, 0); } return grid; } int main() { int** grid = MakeGridOfCounts(6, 6); // Get a 6x6 grid (initialized with 0s) // Do something with the grid... // Release allocated memory for (int i = 0; i < 6; i++) { delete[] grid[i]; } delete[] grid; return 0; }
In dieser Lösung verwenden wir Speicherverwaltungstechniken, um das 2D-Array dynamisch zuzuweisen und so eine ordnungsgemäße Speicherverwaltung sicherzustellen. Die Funktion fill_n wird verwendet, um jedes Element des Arrays auf 0 zu initialisieren. Beachten Sie, dass die Zuweisung und Freigabe von Speicher im selben Bereich erfolgen sollte (in diesem Fall innerhalb der Hauptfunktion).
Das obige ist der detaillierte Inhalt vonWie kann ich ein 2D-Array korrekt von einer C-Funktion zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!