我在斯坦福 3D 扫描存储库中下载了 .ply 文件,并使用该页面中的斯坦福代码(ply.h、plyfile.c)来解析它们。但是,查看这段代码,我发现其中充斥着从未释放的 malloc。我可以闭上眼睛看另一边,但它让我的牙齿发痒。
我可以想到两种解决方法:
一种是使用 Hans Boehm 的垃圾收集器或类似的东西,它重新定义了“malloc”,以便它在垃圾收集器中这样做。我从来没有使用过这个库,但也许有一种方法可以让它只在斯坦福代码中的 malloc 上运行,而不是在其他任何地方。
另一种解决方法是使用不同的解析器,最好是具有良好 RAII 化内存管理的 C++ 解析器。我在上面的链接中看到了一些替代的解析器和转换器,但我不想花一两天时间尝试所有这些,而是希望在这里得到推荐。
任何人都可以推荐一种在没有内存泄漏的情况下解析 .ply 文件的方法,或者通过在斯坦福解析器中包含内存泄漏,或者使用不同的解析器,或者通过我没有想到的第三种方法?