#Object Proposal# 11月9日调试日志

来源:互联网 发布:剑侠情缘进阶数据 编辑:程序博客网 时间:2024/06/05 18:33

上午9时:

想把new和delete调到循环外,但是这个时候却出现了错误。貌似是Op的预测盒子的坐标出现了错误值。错误排查中。

解决:因为对于该循环,为了加快使用了并行计算。如果把new提到循环外面会导致多个线程共用一块内存区域,数据就会发生冲突,因此导致了数据的错乱。


上午9时四十分:

上面的问题倒是解决了,然后内存就炸了。

解决:其实情况是这样的,我在一个Class下面建了一个vector<otherclass *> variable的变量,最后在写它的clear()函数的时候是这么写的:

for (int i = 0; i < variable.size(); i++)

{

if (this->variable[i] != NULL)

this->variable[i]->clear();

}


vector<otherclass *> _freevec;

_freevec.swap(this->variable);

但是其实虽然variable[i]里面的内容被删掉了,但是它本身所占据的内存空间并没有被释放掉;所以以后对vector类的变量进行clear()还是应当先把它的内容先清空,然后再依个删除。如果单元素是指针的话,一定一定要手动把指针删除掉。

0 0
原创粉丝点击