[C] [Résolu] Correspondance entre un pointeur et un "vrai" tableau
Correspondance entre un pointeur et un "vrai" tableau [C] [Résolu] - C - Programmation
MarshPosté le 25-07-2008 à 09:51:33
Relation entre un tableau et un pointeur
On sait qu'un pointeur peut pointer sur le premier élément du tableau rien qu'avec le nom de ce tableau.
Exemple
Code :
int Tab[10]={5,8,4,3,9,6,5,4,3,8};
int *pTab;
pTab = Tab;
Avec cet exemple, on voit bien que le pTab pointe sur le premier élément du Tableau. Si je veux accéder à la troisième "case" du tableau, je peux faire (*Tab+4).
Ma question est simple : Comment on relie les pointeurs avec les tableaux (les vrais) de la forme Tab[][] ?
Je veux faire le lien entre les deux parce que j'ai une fonction qui est déclarée comme fct(double * Tab1, double * Tab2) . Alors que pleins d'autres fonctions utilisent l'autre manière Tab[6][6].
Quand j'essaye de faire la même chose, le compilo sort un warning : "Tu as un pointeur sur double alors que de l'autre côté t'as un pointeur sur array[6] de double." A l'exécution, j'ai un joli Bus Error ...
Comment faire correspondre les deux ? Merci
[Edit] J'ai rien dit, je lui passe par adresse le premier élément " fct (& Tab[0][0], ...)" et ça roule ... (le bus error vient d'ailleurs). Je laisse ce topic aux intéressés !
Marsh Posté le 25-07-2008 à 09:51:33
Relation entre un tableau et un pointeur
On sait qu'un pointeur peut pointer sur le premier élément du tableau rien qu'avec le nom de ce tableau.
Exemple
Avec cet exemple, on voit bien que le pTab pointe sur le premier élément du Tableau.
Si je veux accéder à la troisième "case" du tableau, je peux faire
(*Tab+4).
Ma question est simple :
Comment on relie les pointeurs avec les tableaux (les vrais) de la forme Tab[][] ?
Je veux faire le lien entre les deux parce que j'ai une fonction qui est déclarée comme fct(double * Tab1, double * Tab2) .
Alors que pleins d'autres fonctions utilisent l'autre manière Tab[6][6].
Quand j'essaye de faire la même chose, le compilo sort un warning :
"Tu as un pointeur sur double alors que de l'autre côté t'as un pointeur sur array[6] de double."
A l'exécution, j'ai un joli Bus Error ...
Comment faire correspondre les deux ?
Merci
[Edit] J'ai rien dit, je lui passe par adresse le premier élément " fct (& Tab[0][0], ...)" et ça roule ... (le bus error vient d'ailleurs). Je laisse ce topic aux intéressés !
Message édité par LaTex_man le 25-07-2008 à 10:01:53