If I understoo it right you have to take the memory youwant to use over the game ap as a static field.
fr example i got an linear allocator:
I would do something like this
linearAllocator.start = subsystemMemory;
char* renderSystem = linearAllocator.Allocate(sizeof(renderSystem), 4);
So to say I could do a file, where i declare all of the memory as static and use it over the game?
I think this is a perfectly valid way to do it, but I don't think you "have" to do it that way. I've always acquired the memory for my memory allocators by calling the system's memory allocation function (e.g. malloc).
In fact, in some cases your approach won't work. e.g. Some consoles have multiple memory 'arenas', and any static allocations will always come only from the default arena. so if you want to make an allocator for MEM2 on Wii for instance, you would need to use a different approach.
Regarding alignment, it's not unusual for the caller to have some alignment requirement so any general purpose allocator should have that functionality built in. It's also pretty reasonable to set the minimum alignment to 4 bytes for a 32-bit platform, 8 bytes for a 64-bit platform, or just round up to 16 byte alignment to make life easier for SIMD