Я хотел бы использовать диспетчер памяти, и я попытался использовать boost::pool
, как показано ниже, но ordered_free()
не освобождает все элементы.
Пример ↓
#include <iostream>
#include <boost\pool\pool.hpp>
using namespace std;
int main()
{
boost::pool<> p(sizeof(int));
int* ptr_1= (int*)p.ordered_malloc(3);
for (int i = 0; i < 3; i++)
{
ptr_1[i] = i;
}
p.ordered_free(ptr_1);
int* ptr_2 = (int*)p.ordered_malloc(3);
for (int i = 0; i < 3; i++)
{
ptr_2[i] = i;
}
p.ordered_free(ptr_2);
return 0;
}
В этом случае p.ordered_free(ptr);
удаляет только 5 байтов, а место памяти ptr_2
не совпадает с ptr_1
.Есть ли способ удалить все элементы, используя boost::pool
?