Hvordan arbeide med pekeren til pekeren å strukturere i C?

stemmer
9

Jeg ønsker å endre medlem av strukturen under dobbel pekeren. Vet du hvordan?

eksempel kode

typedef struct {
    int member;
} Ttype;

void changeMember(Ttype **foo) {
   //I don`t know how to do it
   //maybe
   *foo->member = 1;
}
Publisert på 06/12/2008 klokken 20:28
kilden bruker
På andre språk...                            


4 svar

stemmer
20

Prøve

(*foo)->member = 1;

Du må eksplisitt bruke * først. Ellers er det et forsøk på å dereference medlem.

Svarte 06/12/2008 kl. 20:33
kilden bruker

stemmer
7

På grunn av operatør presedens, må du sette parentes rundt dette:

(*foo)->member = 1;
Svarte 06/12/2008 kl. 20:34
kilden bruker

stemmer
3

Du kan bruke en temp variabel for å bedre lesbarheten. For eksempel:

Ttype *temp = *foo;
temp->member = 1;

Hvis du har kontroll over dette, og lov til å bruke C ++, er den beste måten å bruke referanse. For eksempel:

void changeMember(Ttype *&foo) {
   foo->member = 1;
}
Svarte 06/12/2008 kl. 20:59
kilden bruker

stemmer
1

kanskje (* foo) -> medlem = 1 (hvis den er dynamisk allokert)

Svarte 06/12/2008 kl. 20:33
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more