2010-11-10 10 views
0

Je suis intrigué par les erreurs que j'ai pour référencer les membres de la structure.Structure double Erreur de référencement dans C

J'ai la structure comme celui-ci,

typedef struct 
{ 

    Int32  *pInAddr[2]; 
    Int32  a; 

}JobInfo_t; 

typedef struct 
{ 

    ULUnitJobInfo_t    JobInfo[MAX_JOBS_PER_CORE]; 
}DispatchInfo_t; 

DispatchInfo_t *ptr,temp; 
ptr=&temp; 
Fun(ptr) //Fun is some function 

Je passe dans la fonction Fun.c comme

Fun (*ptr) 
{ 

i obtenir erreur lors de l'initialisation

ptr->JobInfo[0]->pInAddr[0]=0; 
    ptr->JobInfo[0]->a=0; 
} 

erreur: expression doit avoir le type de pointeur

Je ne sais pas alors comment accéder tableau de pointeur dans le pointeur de la structure ou accéder à des données simples (a) à partir du pointeur de la structure?

Une autre question: Si j'essaie d'accéder à Int32 temp = ptr-> JobInfo [0] .pInAddr [0]; Il me donne un message

"L'expression doit avoir valeur modifiable l"

+2

et s'il vous plaît apprendre à formater votre code lors de la publication –

+0

Mes sincères excuses, je suis nouveau sur le forum. comment acceptez-vous? Je ne vois aucun lien – user437777

+0

pour accepter une réponse il suffit de cliquer sur l'image V like à côté de l'onglet Réponses, vous pouvez également voter vers le haut et vers le bas ou commenter toutes les autres réponses. Vous ne pouvez accepter qu'une seule réponse par question. Stack Overflow (SO) vous rappellera si vous n'acceptez aucune réponse mais cela prend du temps. Il ya beaucoup plus de choses cool, beaucoup de règles, rep, badges, primes et une tonne d'informations. il suffit de parcourir le haut des onglets de l'écran pour trouver tout cela :) Bienvenue à SO btw. – Proclyon

Répondre

2

JobInfo est un tableau de JobInfo_t, pas un tableau de pointeurs.

Essayez que:

ptr->JobInfo[0].pInAddr[0]=0; ptr->JobInfo[0].a=0 
+0

salut nicolas, j'ai mis à jour ma question. Je passe le pointeur de structure à la fonction. après avoir appliqué vos changements, ptr-> JobInfo [0] .a = 0 fonctionne maintenant mais j'ai toujours la même erreur pour ptr-> JobInfo [0] .pInAddr [0] = 0 – user437777

+0

Je ne sais pas ce que tu veux faire vraiment. Définir pInAddr [0] sur null? –

+0

Bonjour Nicolas, je veux juste initialiser le tableau de pointeurs à certaines adresses. Tableau de pointeur est destiné à contenir deux adresses. J'essayais de les initialiser. – user437777