AVR GCC i wskaźniki

Dec 07, 2007 4 Replies

Witam



Mam poniższy fragment kodu:



struct pos { unsigned int v; signed char step; signed int delta; } px,*p1;



Kiedy robię takie przypisanie: px.v = 0 Wszystko jest OK, ale jak spróbuję zrobić cos takiego: *p1.step = 1 kompilator wyrzuca mi błąd: error: request for member 'step' in something not a structure or union



Z pewnych względów najłatwiej jest mi właśnie korzystać ze wskaźników na strukturę. Z czego wynika ten błąd i jak sie go pozbyć?



Z góry dziękuję za odpowiedź



Wojtek



Wojtek denied rebel lies:

p1 -> step = 1

Probujesz pobrac element step ze wskaźnika, a potrzebujesz pobrac ten element z wyłuskania tego wskaźnika. Czyli po prostu albo robisz tak jak MoonWolf napisał (i tak sie powinno robic). Jeśli chcesz zrobic swoim sposobem, powinieneś napisac: (*p1).step = 1;

Użytkownik "MoonWolf" snipped-for-privacy@polbox.com napisał w wiadomości news:fjb63r$ojn$ snipped-for-privacy@news.onet.pl...

Ewentualnie

(*p1).step = 1

Operator wyłuskania (*) ma niższy priorytet od operatorów dostępu . i ->.

Pozdrawiam, Przemek Szeremiota

Przemysław Szeremiota denied rebel lies:

O właśnie - nie mogłem sobie tego przypomnieć (:)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required