Насколько я понимаю, в современных операционных системах вызов exit
приводит к завершению процесса и выделению памяти для пула потоков.Тем не менее, это очень неаккуратный способ очистить использование памяти, и на него не следует рассчитывать, потому что есть много вещей, которые могут прервать и убить процесс, не говоря уже об очевидной потенциальной проблеме нехватки памяти.
Здесь ООП может пригодиться, но я предполагаю, что, так как это домашнее задание, вы застряли, написав его на C?
Я бы написал новый модуль, который реализует списокнекоторый тип (например, связанный список) для управления распределением и удалением общей памяти.Для модуля потребуются некоторые открытые API для выделения памяти и освобождения памяти.(Подумайте: функции-обертки для malloc
и free
.) Также потребуется механизм блокировки для обеспечения единственного доступа, чтобы два процесса не останавливались друг на друге.