Maison >développement back-end >C++ >Comment renvoyer correctement un tableau 2D à partir d'une fonction C ?
Renvoie des tableaux 2D en C
Renvoyer un tableau 2D à partir d'une fonction en C peut être une tâche délicate. Une approche, comme le démontre le code fourni, tente de renvoyer un tableau 2D à l'aide du code ci-dessous, mais cette approche ne convient pas.
int **MakeGridOfCounts() { int cGrid[6][6] = {{0, }, {0, }, {0, }, {0, }, {0, }, {0, }}; return cGrid; }
Au lieu de cela, une approche viable consiste à créer et à renvoyer un pointeur vers le Tableau 2D utilisant l'allocation dynamique de mémoire. Explorons comment cela est réalisé avec un exemple de code amélioré :
#include <cstdio> int** create2DArray(unsigned height, unsigned width) { .... }
Créer le tableau 2D ( create2DArray() ):
int** array2D = new int*[height]; for (int h = 0; h < height; h++) { array2D[h] = new int[width]; . . . }
Renvoyer le tableau (create2DArray() ):
Nettoyer la mémoire (main() ) :
for (int h = 0; h < height; h++) { delete [] array2D[h]; } delete [] array2D;
Cette approche garantit une bonne gestion de la mémoire et fournit un moyen de renvoyer un Tableau 2D à partir d'une fonction en C .
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!