This seems dangerous, because you're including a header with the declaration of SomeStruct, but you can only use SomeStruct if MYARRAYSIZE is defined. Very counter-intuitive.
Either use something like a template to declare the size of someArray if you really need a compile time size for the array:
1 2 3 4 5 6 7 8 9 10 11
template<int T>
struct Array
{
Array():size(T){}
int& GetI(size_t index){return i[index];}
const size_t GetSize(){return size;}
private:
int i[T];
size_t size;
};
//Note: very unsafe code. There is no bounds checking whatsoever for index.