Autor Wątek: Wskaźnik na element struktury, ... poprzez wskaźnik  (Przeczytany 1511 razy)

Offline PsichiX (ΨΧΞ)

  • Użytkownik
    • PsichiX Website

# Marzec 02, 2009, 12:11:44
Witajcie, mam takie pytanie:
Mam strukturę, obiekt tej struktury, oraz wskaźnik z adresem tego obiektu. Teraz jeśli chcę pobrać wskaźnik na element tego obiektu, poprzez wskaźnik na ten obiekt to nie mam pewności jak to powinno najlepiej być aby nie sprawiało problemów.

Kod: (cpp) [Zaznacz]
struct S // struktura
{
int a;
int b;
}

S sObj; // obiekt struktury
S* psObj=&sObj; // wskaźnik na obiekt;

int* piSub; // wskaźnik na element int obiektu
piSub=&(psObj->a); // i nie wiem czy to jest dobrze napisane, bo Visual nie wyrzuca błędu, ale zastanawia mnie dlaczego akurat & musi być przed nawiasem (dodam, że ten kod w szablonie klasy i funkcji nie wyrzuca bledu nawet gdy dam: piSub=psObj->&a; dziwne :0)
« Ostatnia zmiana: Marzec 02, 2009, 12:14:26 wysłana przez PsichiX »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline revo

  • Użytkownik

# Marzec 02, 2009, 12:26:20
Nawiasy nie są potrzebne:

piSub = &psObj->a;
A co do komentarzu o szablonach -- szablony nie są kompilowane od razu i błędy dostajesz dopiero kiedy je 'ukonkretnisz'.

Offline .:NOXY:.

  • Użytkownik
    • Profil

# Marzec 02, 2009, 12:28:14
Czenu dziwne to jest jak najbardziej poprawne :) przeciez musisz do wskaznika pobrac Adres obiektu a ze wskaznik jest int* no to z faktu zapisu (psObj->a) sam w sobie jest typu int wiec musisz dac znak pobrania adesu zeby otrzymac int*

Offline PsichiX (ΨΧΞ)

  • Użytkownik
    • PsichiX Website

# Marzec 02, 2009, 12:38:01
Dziękuję za odpowiedzi :)