Обнаружил странную вещь: если делать много malloc в программе, но не использовать память, то эта память (занятая программой) не отражается в free() (например, если хапнуть 512 Мб памяти, то free не поменяется). Это документированная фича?