Maison >développement back-end >C++ >Comment puis-je renvoyer correctement un tableau 2D à partir d'une fonction C ?
Implémentation d'une fonction pour renvoyer un tableau 2D en C
L'extrait de code fourni tente de renvoyer un tableau 2D à partir d'une fonction, mais il a un problème avec la déclaration du tableau. Pour remédier à cela, nous pouvons introduire une solution plus complète :
#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; }
Dans cette solution, nous utilisons des techniques de gestion de la mémoire pour allouer dynamiquement le tableau 2D, garantissant ainsi une bonne gestion de la mémoire. La fonction fill_n est utilisée pour initialiser chaque élément du tableau à 0. Notez que l'allocation et la désallocation de mémoire doivent être effectuées dans le même périmètre (dans ce cas, au sein de la fonction principale).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!