free почему то не удаляет массив из памяти
Обнаружил, что free почему то не удаляет массив из памяти. И когда я с помощью free удаляю 1 массив и потом с помощью malloc создаю другой, при создании новый массив указывает на часть старого массива, как это исправить?
Ответы (1 шт):
malloc выделяет определенный объем памяти и гарантирует неполучение другими процессами (как и этим) этого куска памяти. Она не обнуляет хранилище, просто резервирует. free снимает резерв с выделенного с помощью malloc-подобных функций. То есть, после высвобождения с помощью free этим куском памяти могут пользоваться другие. Это и есть освобождение памяти, зачем в этот кусок записывать при это нули (или еще что?).
Для того, чтобы получить "свободную" память, воспользуйтесь calloc