2010-11-04 5 views
0

Je requête suivante:Différence entre le pointeur de la structure et de la structure lorsqu'il est passé à fonctionner arg en C

est ma structure THis dans certains .h

typedef struct 
    { 
     recUEInfo_t *recUEInfoPtr_t; 
     Int32 frameID; 
     Int32 slotIndx; 
     Int32 symNumber; 

    } recControlList; 

Si je recControlList recControlListPtr; Je peux passer à la fonction adresse de l'appelant et recueillir comme un pointeur dans la définition

Fun(recControlListPtr);/* caller*/ 

et void Fun(*recControlListPtr);/* actual func*/

Mais si je ne recControlList *recControlListPtr; alors que dois-je faire pour obtenir le pointeur correct?

S'il vous plaît aider

+0

Etes-vous sûr de bien avoir copié/collé la déclaration de fonction? Cela ne semble pas correct. En outre, où est recControlListPtr défini? –

+0

Salut Firoze, son dans la ligne suivante sous la partie ombrée – user437777

+0

Ce n'est pas une déclaration ou une définition. Je demande où est recControlListPtr défini dans l'appelant? –

Répondre

3

j'ai mal compris qui était le declarer et l'appelant de la fonction d'abord, désolé, donc si la définition de la fonction est:

Fun(recControlListPtr *precControlListPtr) 
{ 
    // Do stuff 
} 

On pourrait appeler cette façon:

recControlListPtr rec1; 
recContrlListPtr* prec2; 
Fun(&rec1); 
Fun(prec2); 

Édition supplémentaire - Ma meilleure estimation de ce que je pense que vous essayez d'accomplir

typedef struct 
{ 
    recUEInfo_t *recUEInfoPtr_t; 
    int frameID; 
    int slotIndx; 
    int symNumber; 

} recControlList; 

void Fun(recControlList* pRecList) 
{ 
    ASSERT(pRecList != NULL); 
    int nFrameID = pRecList->frameID; // This line shows accessing the struct 
    // Do other stuff 
} 

recControlList rec1; 
recControlList* pRec2 = &rec1; 
Fun(&rec1); 
Fun(pRec2); 
+0

C'est dans le cas 1. Qu'en est-il du cas 2? Fun (** recControlListPtr); est correct? Puis-je obtenir les valeurs de structure réelles par ceci dans le Fun()? – user437777

+1

Mis à jour en fonction de votre commentaire. En ce qui concerne l'obtention des valeurs de "structure", vous ne savez pas ce que vous demandez, où est la définition de recControlListPtr? Vous auriez besoin de cette information pour savoir comment obtenir les données de la structure. – pstrjds

+0

Merci pour ça! Maintenant c'est clair :) – user437777

Questions connexes