Maison > développement back-end > C++ > Comment retourner et gérer en toute sécurité un tableau 2D à partir d'une fonction C ?

Comment retourner et gérer en toute sécurité un tableau 2D à partir d'une fonction C ?

Linda Hamilton
Libérer: 2024-12-26 17:59:10
original
695 Les gens l'ont consulté

How to Safely Return and Manage a 2D Array from a C   Function?

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;
}
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal