Renvoi d'un tableau 2D à partir d'une fonction en C
Lorsque vous travaillez avec des tableaux 2D en C , l'approche présentée dans le code fourni n'est pas recommandé. Envisagez plutôt d'implémenter la fonction suivante :
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; }
Cette fonction prend la hauteur et la largeur du tableau 2D souhaité sous forme d'entiers non signés et lui alloue dynamiquement de la mémoire. Le tableau externe est alloué en premier, puis les tableaux internes sont alloués dans la boucle.
N'oubliez pas de libérer la mémoire après utilisation pour éviter les fuites de mémoire. Cela peut être fait en parcourant les éléments et en supprimant les tableaux internes et externes.
Exemple d'utilisation :
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
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!