GTK + и GLib не освобождают память «выделить один раз». Они следуют парадигме, которая говорит, что нет необходимости освобождать ресурсы непосредственно перед выходом из процесса, который в любом случае будет освобожден системой (это в основном относится к памяти). Это, конечно, не совсем удобно для отладки, но позволяет немного ускорить завершение программы и упростить код (это C, даже «тривиальные» задачи переносят строки в код).
Итак, «все еще достижимая» память - это , скорее всего, , просто не умышленно освобожденная, и не утечка. Или, конечно, может быть ошибкой. «Определенно потерянная» память, однако, почти наверняка является ошибкой.
Также обратите внимание, что ошибки утечки памяти в программе могут выглядеть так, как будто они запускаются самим GTK +. Например, GTK + может выделить объект для разыменования (и освобождения) программы позже, что не может сделать это. Valgrind покажет трассировку стека глубоко в GTK +, несмотря на ошибку в программе.