Will it be a guarantee that Data_A & Data_B are stored contiguously?
2) This one is more type-casting-orientated. Here's a cast (using the code above):
int *An_Int( reinterpret_cast< int * >( Buffer ) );
If I understand this correctly, An_Int now points to Buffer. When An_Int is dereferenced, the compiler will think An_Int is pointing to an array of ints?
placement new constructs a new object in the memory space you tell it to. Your question doesn't make sense to me.
Successive calls to placement new with the same memory address will result in new objects being constructed in the same place the previous ones were. You control where the object is constructed. That's the whole point of it.