где malloc () и free () хранят выделенные адреса и их размеры (Linux GCC)? Я читал, что некоторые реализации хранят их где-то до фактической выделенной памяти, но я не смог подтвердить это в моих тестах.
Фон, может быть, у кого-то есть другой совет для этого:
Я немного экспериментирую с анализом динамической памяти процесса, чтобы определить текущее значение строки в другом процессе.
Доступ к памяти кучи процесса и ее перемещение не являются проблемой. Однако, поскольку значение строки изменяется, и процесс каждый раз выделяет новую часть памяти, адрес строки изменяется.
Поскольку строка имеет фиксированный формат, ее все равно легко найти, но после нескольких изменений старые версии строки все еще находятся в динамической памяти (вероятно, освобождены, но все еще не использованы повторно / перезаписаны), и поэтому я не могу сказать какая строка является текущей.
Итак, чтобы найти текущую, я хочу проверить, используется ли все еще найденная в памяти строка, сравнивая ее адрес с адресами, которые знает malloc / free.
чао,
Эльмар