Хотя некоторые библиотеки имеют heap_min или другие имена, которые будут сбрасывать пулы распределения, используемые m / calloc и free, вы делаете это очень правильно.
Имейте в виду, что пулы распределения наиболееобычно реализуется с использованием связанных списков размещения информационных узлов.В вашем примере будет грузовик с последовательными вызовами, следовательно, порядок, по которому вы освобождаетесь, должен быть таким же, каким вы распределили.Это означает, что бесплатный вызов найдет элемент в начале связанного списка, что минимизирует время поиска.