Я загрузил файлы .ply из Стэнфордского репозитория 3D-сканирования и использую код Стэнфорда. с этой страницы (ply.h, plyfile.c) для их анализа. Однако, глядя на этот код, я вижу, что он изобилует malloc, которые никогда не освобождаются. Я мог бы закрыть глаза и посмотреть в другую сторону, но от этого у меня чешутся зубы.
Я могу придумать два обходных пути:
Один из них заключается в использовании сборщика мусора Ганса Бема или чего-то подобного, который переопределяет malloc, чтобы он делал это внутри сборщика мусора. Я никогда не пользовался этой библиотекой, но, возможно, есть способ заставить ее работать только с malloc в коде Стэнфорда и нигде больше.
Другой обходной путь — использовать другой синтаксический анализатор, предпочтительно C++, с удобным управлением памятью в стиле RAII. Я вижу несколько альтернативных парсеров и конвертеров, перечисленных по ссылке выше, но вместо того, чтобы убить день или два, пытаясь их все, я надеялся получить рекомендацию здесь.
Может ли кто-нибудь порекомендовать способ парсить файлы .ply без утечек памяти, либо сдерживая утечки памяти в синтаксическом анализаторе Стэнфорда, либо используя другой синтаксический анализатор, либо какой-то третий метод, о котором я не подумал?