Donnez votre avis

Passer un tableau a 2 dimensions a une fonction

Posez votre question

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