I\'ve just started learning C with a professional Java background and some (if no too much) C++ knowledge, and I was astonished that this doesn\'t work in C:
str
That's the way C works. In C you have to say:
typedef struct Point { int x; int y; } Point;
And then you'll have a type called Point that does what you want.
Point
In C++ it's enough to define it the way you did.