Вы подписываетесь на довольно распространенное заблуждение о том, что блоки кучи, которые не освобождены, но все еще доступны во время существования программы, являются утечками.Это неправда.Утекшие блоки - это те, на которые по-прежнему не указывает ни один указатель, следовательно, они не могут быть освобождены.
За годы игры (и разрушения) множества совершенно хороших ядер мне никогда не удавалось достаточно разрушить виртуальную памятьменеджер до точки, где он больше не восстанавливает все адресное пространство процесса после его выхода.Если вы не работаете с ядром, явно помеченным как «новое и экспериментальное», вам больше повезет выиграть в лотерею, чем найти систему, в которой нет эффективного менеджера виртуальной памяти.
Не добавляйте в свой код негодяй, просто чтобы получить отличную оценку в Вальгринде.Если у вас нет реальных задач по очистке, которые можно сделать , отличных от , кроме освобождения памяти, для которой все еще имеет действительные ссылки , вам не нужно беспокоитьсяЕсли кто-то выбросит kill -9
в вашу программу, вы не сможете его обработать и увидите повторение старого поведения.
Если у вас есть дескрипторы файлов для очистки, общие блокировки для освобождения, потоки дляфлеш или что-то еще должно произойти, чтобы другие процессы не скучали по тебе, когда ты ушел, во что бы то ни стало позаботься об этом.Только не добавляйте код, который ничего не делает для решения не-проблемы, просто глупо делать это.
Примечание
Изначально это должно было бытькомментарий, но он слишком длинный, и ТАК нахмурился писать новый комментарий по одному за раз.