Didn't you ask this in a
previous post? You got an answer there, too.
-> is the "indirect access" operator. It is applied on the right of a POINTER to a struct or class in order to access a member of said struct or class. If the object that -> is applied to is not a pointer (and doesn't overload operator->, but you need not concern yourself with that case), then application of -> is invalid. Instead you should use the . operator. For example:
SomeStruct foo;SomeStruct *bar = new SomeStruct; foo.baz = 10; // Direct access via . operator.bar->baz = 20; // Indirect access via -> operator.
Also not that applying either . or -> on the right of an object without members (such as a regular int) isn't valid either.
Sounds to me like garble1 through garble3 are not pointers to objects.