Po wielu godzinach doszedłem jaki błąd był banalny, wyjaśnię jakby ktoś podobny problem napotkał:
(*(obiektyC::C+1))-> z1;
to działa bo:
(*(obiektyC::C+1)) wskazuje na wskaźnik na obiekt klasy C i dalej uzywajac operatora wyluskania dostajemy sie do obiektu po jego lewej stronie a po prawej jest zmienna z1, która tam istnieje - tu wszystko bylo ok
(*(obiektyC::C+1))-> obj+1 ->a;
tu jest błąd w zapisie, bo:
wskaznik na obiekt typu C:
(*(obiektyC::C+1))
wyłuskany opbiekt typu C:
(*(obiektyC::C+1)) ->
wskaźnik na pierwszy obiekt w tablicy obiektów typu S w obiekcie typu C:
(*(obiektyC::C+1)) -> obj
wskaźnik na drugi obiekt w tablicy obiektów typu S w obiekcie typu C:
((*(obiektyC::C+1)) -> obj)+1
drugi obiekt w tablicy obiektów typu S w obiekcie typu C:
(((*(obiektyC::C+1)) -> obj)+1)->
zmienna a w drugim elementcie tablicy obiektów typu S w obiekcie typu C
(((*(obiektyC::C+1)) -> obj)+1)->a
i działa jak natura chciała :)
Dziękuję za każdy post odpowiedzi w temacie :)