Общий распределитель памяти

Я хотел бы создать диспетчер/распределитель памяти, который выделяет память любого указанного размера. Я пытался использовать распределитель памяти Boost и ACE, но они выделяют только определенные типы данных.

В ACE_cached_allocator, если аллокатор имеет тип int, мы можем выделить память только для int, не можем получить для char.

пример: - я могу запросить любой размер памяти, такой как int, char или любой class/structure

пожалуйста, предложите любую библиотеку для такого приложения


person user2424663    schedule 30.05.2013    source источник


Ответы (1)


Я думаю, вам просто нужен malloc. Вы можете выделить память для массива из 20 int следующим образом:

int *a = (int *)malloc(sizeof *a * 20);
a[0] = 1234;
a[1] = 4567;
free(a);

Если у вас есть структура или класс с типом Foo, это просто:

Foo *fp = (Foo *)malloc(sizeof *fp);

Ответ кажется простым, так что я неправильно понял ваш вопрос?

(Примечание: приведения типов не нужны в C.)

person rptb1    schedule 03.06.2013