Boost.Pool тебе в помощь (выделяем страницу, оффсетами выдаем память, если по своему реализовывать) , можешь даже пойти дальше и наследовать std::allocator на свое выделение памяти
Проблема с утечкой памяти решается умными указателями, ссылками (rvalue, lvalue), RAII, и вообще не кошерно в с++14 работать с голыми указателями, это вам не чистый С (хотя в многих ВУЗах вообще принято вместе их изучать, но я просто скажу: ОНИ НЕ ПРАВЫ). Даже если и приходится работать, то есть gb и под плюсы (Пример: http://hboehm.info/gc/). Насчет платформ, опять же, все не так плохо как говорят джависты/шарписты. Есть mxe(http://mxe.cc) для кросс-компиляции, на винде/маке/андроиде/линуксах есть clang по крайне мере, еще все компиляторы стараются держать совместимость друг с другом. Ну даже если проблема с различными флагами компиляции есть, то она решается с помощью qmake/qbs в qt creator (qt creator может использоваться для проектов без qt).
Я тут хотел написать, что условия задачи не как не влияют на m. И что m=f(t), где f(t1) > f(t2) при t1 > t2. И что "Миша, все хуйня". Но как то детский сад совсем...
Я уже сразу про out of order execution вспомнил, надо бы завязывать с параллельным программированием