So which compiler are you using?

> void main()
main returns an int.

> Xc = 1;
> Yc = 1;
Surprised the compiler will do this, given they're pointers.

> Xc = 0; //&a;
> Yc = 0; //&b;
You forgot the types.

As in
unsigned int *Xc = 0, *Yc = 0;