Closed. This question is
opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便
editing this post用事实和引用来回答。
2年前关闭。
Improve this question
今年夏天,我一直在大学的图像/视频实验室工作。就在最近,我的教授给了我一个由一名研究生编写的程序,他刚刚离开该程序进行“修复”,因为它“出现了一些错误”。
该项目是用C++编写的(在学生代码中似乎经常出现错误迹象)。我在VS08中打开了该项目,然后运行了该项目,结果发现“错误”是bad_alloc。可以肯定的是,内存管理是问题,或者更确切地说是缺乏内存管理。
程序员似乎喜欢在整个代码中混合malloc,news和new [],而绝对没有free,delete或delete []。更糟的是,所有对象似乎至少执行4-5个无关的操作。最重要的是,这是程序员留下的评论:
//do not delete objects, it seems to cause bugs in the segmenter
从我所看到的,指针和引用的引用之间存在很多不健康的混合,并且所有值都通过将引用传递给可能是静态的整体类函数来进行更改。在编译时,大约有23条警告-有点像从 double 字符转换为char时可能会丢失数据,大约有17个未使用的变量,等等。我希望像这样的时候C++在大学中不存在,并且所有实验室工作都是用python或matlab完成...
因此,现在,教授希望我“弄弄”该程序,以便它可以在比以前大10倍的数据集上运行。我承认,我有点害怕告诉她代码是垃圾。
有了StackOverflow,您们从来没有失败过,可以提供很好的建议,所以现在我恳求,对于处理这种情况的任何建议都将不胜感激。
编辑该代码约为5000 LoC
EDIT2 教授决定采用最简单的方法。这正在获得更多的RAM。是的,正要把钱扔给这个问题。