Passer un tableau a 2 dimensions a une fonction

Avril 2018


Passer un tableau a 2 dimensions a une fonction


Après analyse de l'organisation d'un tableau à 2 dimensions en mémoire, j'ai trouver cette solution :

Code source


// Fonction qui permettra de lire et modifier le tableau
void rec_tab( bool *tableau, int& taille_1, int& taille_2 ) 
{
      for ( int i_t1 =  0; i_t1<taille_1; i_t1++ )
      {
            for ( int i_t2 = 0; i_t2 < taille_2; i_t2++ )
                  tab[(int unsigned)((i_t1*taille_2)+i_t1))] = true;
      }
}


int main ()
{
   int taille_dimension1, taille_dimension2;
   taille_dimension1 = 4;
   taille_dimension2 = 4;
// Déclaration du tableau bool (Rappelez vous qu'un bool est codé sur 1 octet)
     bool tableau [taille_dimension1][taille_dimension2] = {false};
     rec_tab ( tableau[0], taille_dimension1, taille_dimension2 );    
     return 0;
}

EXPLICATIONS


Si, par exemple, on a un tableau qui est déclaré de cette façon :
bool tableau [ 2 ][ 2 ];


Cela revient a faire :
bool tableau [ 4 ]; // Parce que 2 * 2  = 4


donc pour accéder par exemple à l'index :
tableau [ 1 ][ 0 ];


il suffit de faire :
tableau [ 2 ];


et pour :
tableau [ 1 ][ 1 ];


il faut faire :
tableau [ 2 + 1 ];


J'espère que vous m'avez compris lol
Publié par soso62fr.
Ce document intitulé «  Passer un tableau a 2 dimensions a une fonction  » issu de CodeS-SourceS (https://codes-sources.commentcamarche.net/) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Ajouter un commentaire

Commentaires

Commenter la réponse de wlocity
Opengl : gluunproject / comment projeter la souris sur un plan !
Distribuer un jeu de cartes