[C] как разместить структуру внутри буфера
От: B0FEE664  
Дата: 27.02.19 09:40
Оценка:
Как на 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;
}
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.