Un peux de pointeur en C :D

Résolu
MatthMirage Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Voila mon petit problème

J'ai un structure qui contient un tableau,

typedef struct {
unsigned char tableau[10];
}_structtableau



j'ai un pointeur sur cette structure

_structtableau struct1;
_structtableau pnt_struct1 = &struct1 ;


Je souhaite maintenant faire pointé un pointeur sur la 1er case du tableau mais le code suivant :
unsigned char *pnt_tbl;
pnt_tbl = pnt_pnt_struct1->tableau
;

ne me donne pas la bonne réponse...

Des idée parce que je bloque bien... ?
Merci

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
typedef struct {
unsigned char tableau[10];
}_structtableau ; /* il manque un ; */

_structtableau struct1;
_structtableau *pnt_struct1 = &struct1 ; /* il manque une * pour déclarer un pointeur */

unsigned char *pnt_tbl;
pnt_tbl = pnt_struct1->tableau; /* le nom est incorrect */
1
biboo_ Messages postés 1249 Date d'inscription   Statut Membre Dernière intervention   106
 
pnt_tbl = pnt_pnt_struct1->tableau[0] ?
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
&(pnt_struct1->tableau[0])
serait déjà mieux.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention  
 
Salut Char Snipeur,
Non c'est mieux de mettre sans l'esperluette. C'est comme dans le cas scanf("%s", tableau); où on a char tableau[X] il ne vaut mieux pas mettre d'esperluette sinon les types ne sont plus totalement cohérents.

Cdlt,
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299 > Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention  
 
Heu, je persiste.
char * ptn =&(pnt_struct1->tableau[0]) ;
ou mieux
char *ptn=pnt_struct1->tableau;
Mais si on a
char * ptn=(pnt_struct1->tableau[0]) ;
alors là je voi un problème de type.
0
MatthMirage Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci pour vos réponse !
0