It's not really meaningful to say that the members of a struct are allocated at the same time as a struct. A struct is simply the collection of its members. There is no additional data to a struct that you could meaningfully say that "the struct was allocated but not the members".
Exactly how memory is allocated depends on the platform and the compiler. If, say, an int and a float are both 4 bytes -- which I think is typical -- then this struct would consist of 12 bytes, the three fields one after the other.
Compilers sometimes put all the fields in a struct on 4-byte boundaries, or some other boundary. So if you had a struct made up of a char, a float, and an int, you'd probably get 1 byte for the char, 3 filler bytes, then 4 for the float and 4 for the int.
Integers and floats DON'T have different address spaces in memory, at least not on any system I've ever used. They're freely mixed together. The processor may have separate int and float registers, but that's a whole different thing.