Compiler Error C2228

left of '.identifier' must have class/struct/union type

The left side of the specified class member access operator (.) was not a class (or structure or union) type.

The following is an example of this error:

int i;
struct S
{
public:
    int member;
} s, *ps;
void main()
{
   i.member = 0;   // error, i is not a class type
   ps.member = 0;  // error, ps is a pointer to a structure
   s.member = 0;   // OK, s is a structure type
   ps->member = 0; // OK, ps points to a structure S
}