现在的位置: 首页 > 综合 > 正文

20111129小结 opendpi内存释放所遇到的问题

2012年04月04日 ⁄ 综合 ⁄ 共 588字 ⁄ 字号 评论关闭

 

一、当日工作(或学习)内容及进展情况(以条目式陈述,必要时配图说明)

在经历了3次程序运行6,7个小时就segmentation fault的情况后,我猜想是内存分配的时候有问题呢?还是内存释放的时候有问题呢?。然后抱着验证动态分配后数据是否正确的目的,我果断的把原始的opendpi离线分析的程序改成了动态分配的,下面是离线分析动态分配与没有动态分配得到的结果:

动态分配:

原程序:

让我非常欣慰的是,结果完全一致,说明内存分配应该没有问题,又由于前一张图出现了segmentation fault让我确定了错误肯定是在内存释放的地方。结果也证明确实是分配的地方有问题,我拿释放id举例(flow同id释放)。

之前的释放:

修改后的释放:

其实,说白了,就是之前虽然考虑到释放首末结点的情况,但是我忽略了释放一个结点的情况,比如如果现在只有一个结点,之前我释放末节点,判断now_id->next == NULL, 然后 now->back->next == NULL;这边的now->back->next会指向错误的的内存,因此出错。

修改后得到的结果:

嗯,segmentation fault终于没有了… 

现在程序依旧再跑…  看现在能跑多久…

二、存在问题及分析(以条目式陈述,必要时配图说明)

今天修改整流的程序时,遇到了问题,明天好好改改… 

三、明日工作计划(以条目式陈述)

改整流部分…

 

 

 

    

抱歉!评论已关闭.