一、当日工作(或学习)内容及进展情况(以条目式陈述,必要时配图说明)
在经历了3次程序运行6,7个小时就segmentation fault的情况后,我猜想是内存分配的时候有问题呢?还是内存释放的时候有问题呢?。然后抱着验证动态分配后数据是否正确的目的,我果断的把原始的opendpi离线分析的程序改成了动态分配的,下面是离线分析动态分配与没有动态分配得到的结果:
动态分配:
原程序:
让我非常欣慰的是,结果完全一致,说明内存分配应该没有问题,又由于前一张图出现了segmentation fault让我确定了错误肯定是在内存释放的地方。结果也证明确实是分配的地方有问题,我拿释放id举例(flow同id释放)。
之前的释放:
修改后的释放:
其实,说白了,就是之前虽然考虑到释放首末结点的情况,但是我忽略了释放一个结点的情况,比如如果现在只有一个结点,之前我释放末节点,判断now_id->next == NULL, 然后 now->back->next == NULL;这边的now->back->next会指向错误的的内存,因此出错。
修改后得到的结果:
嗯,segmentation fault终于没有了…
现在程序依旧再跑… 看现在能跑多久…
二、存在问题及分析(以条目式陈述,必要时配图说明)
今天修改整流的程序时,遇到了问题,明天好好改改…
三、明日工作计划(以条目式陈述)
改整流部分…