The expression must be constant at compile time. Your code uses a run-time constant. A compile time constant would look like this:
const int x = 5;
Point *Room[x];
To create an array at runtime, use the
new
operator:
Point *Room = new Point[size];
delete [] Room;
[EDIT]
Noted that Carlo has edited his solution to use an array of pointers to
Point
to use the same types as in the question. I will left my example unchanged, because it may be the intention to use this kind of array. If not, Carlo's answer should be used.
[/EDIT]