Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1639 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  ** tab vs tab[][]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

** tab vs tab[][]

n°2176524
in_your_ph​ion
Posté le 19-02-2013 à 22:29:18  profilanswer
 

bongoure
 
Il me semble que dans une fonction, quand on fait :

Code :
  1. void tralala( unsigned tab[]);


 
c'est en fait converti en *tab.
 
Alors pourquoi quand je fais ça, ça ne me marche pas :
 
[cpp]
void trololo(char ** tab ) {      }  
 
int tab[10][10];
 
trololo( tab ); // -> boom ???
[/bpp]
 
thx

mood
Publicité
Posté le 19-02-2013 à 22:29:18  profilanswer
 

n°2176588
Terminapor
I'll see you rise.
Posté le 20-02-2013 à 12:18:04  profilanswer
 

Alors, si je ne me trompe pas, les tableaux 2D sont un peu particulier lorsqu'ils sont déclarés comme ça :

 

type T [x][y];

 

C'est pas un "pointeur sur pointeur" pour faire ce tableau, AMHA il est 'converti' en tableau 1D avec la formule pour accéder aux cases :

 

T[i][j] -> *(T + i* x + j);

 

Pareil pour du 3D :

 

T[i][j][k] = *( T + j*x + i*y + k);  (pas sûr de la formule, mais l'idée est là :D)

 

Alors qu'un tableau déclaré en Type ** T, on y accède comme ça :

 

T[i][j] -> *(*(T+i)+j); (à une vache près la formule, en gros ça équivaut à un tableau de tableaux.)

 

Mais il est possible que ça dépende carrément du compilateur utilisé.

 

edit : Donc en gros, quand tu fais passer un Tab[x][y] dans une func, il faut préciser la largeur au moins :jap:


Message édité par Terminapor le 20-02-2013 à 12:24:59

---------------
Perhaps you don't deserve to breathe

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  ** tab vs tab[][]

 

Sujets relatifs
char **#'!*%@!?#!!** de saloperie de *!!#¡@* de PHP de m*@#*!
Plus de sujets relatifs à : ** tab vs tab[][]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR