Как на C написать placement new для различных структур?
Допустим у меня есть предзаказанный буфер длиною N и я хочу внутри него разместить несколько разных экземпляров разных структур. Как это сделать правильно?
typedef struct
{
...
} MyStruct;
typedef struct
{
const char* begin;
const char* end;
const char* tail;
} Buffer;
MyStruct* Create_MyStruct(Buffer* pBuffer)
{
if ( NULL == pBuffer )
return NULL;
if ( pBuffer->end < pBuffer->tail + sizeof(MyStruct) )
return NULL;
MyStruct* pNewObj = (MyStruct*)pBuffer->tail;
pBuffer->tail += sizeof(MyStruct); // _Alignof(MyStruct) ?
return pNewObj;
}