Tableau à 3 dimensions

youssefmahdia Messages postés 25 Date d'inscription dimanche 30 mars 2008 Statut Membre Dernière intervention 12 juin 2011 - 17 mai 2008 à 12:21
The_Snail Messages postés 21 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 6 mars 2009 - 17 mai 2008 à 14:27
bonjour,
je veux savoir  comment allouer et libérer de mémoire à un tableau à trois dimensions.
merci pour vos aides.

1 réponse

The_Snail Messages postés 21 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 6 mars 2009
17 mai 2008 à 14:27
Salut,

voila un bout de code :

#include

// Definition de la taille du tableau
#define X 10
#define Y 10
#define Z 10

int main()
{
    int i, j, k;

    // Pointeur sur le tableau à trois dimensions
    int*** tab;

    // Allocation dynamique du tableau
    // 1ere dimension
    tab = new int**[X];

    // 2eme dimension
    for(i = 0; i < X; i++)
    {
        tab[i] = new int*[Y];
    }

    // 3eme dimension
    for(i = 0; i < X; i++)
    {
        for(j = 0; j < Y; j++)
        {
            tab[i][j] = new int[Z];
        }
    }

    // Initialisation du tableau
    for(i = 0; i < X; i++)
    {
        for(j = 0; j < Y; j++)
        {
            for(k = 0; k < Z; k++)
            {
                tab[i][j][k] = 0;
            }
        }
    }

    // Libération de la mémoire
    // 3eme dimension
    for(i = 0; i < X; i++)
    {
        for(j = 0; j < Y; j++)
        {
            delete []tab[i][j];
        }
    }

    // 2eme dimension
    for(i = 0; i < X; i++)
    {
        delete []tab[i];
    }

    // 1ere dimension
    delete []tab;

    return 0;
}

++
0
Rejoignez-nous