悲剧啊!
第一个细菌基因预测程序写完了, 倒是有个巨大的bug,
内存回收那里总是会出错, 而且必然出错在第431个ORF序列, 为什么我就没有对这个数字敏感呢?
这个数字正好是霍乱弧菌小染色体上明确编码蛋白质的基因数…
为了支持多染色体文件的输入, 我改使用了顺序容器托管了染色体序列,
只有一个变量, 用于存储种子ORF数目的, 忘了使它自增, 于是就引起了后来的一系列内存操作越界,
以至于让我花了几个小时几乎崩溃去找到使得内存回收出错的地方…
seedOrfNumber = PickSeedOrfs(pttFile.c_str(), listSeedOrfs, listPutativeOrfs, instances);
改成
seedOrfNumber += PickSeedOrfs(pttFile.c_str(), listSeedOrfs, listPutativeOrfs, instances);
后, 世界都清净了…
叫你丫的不注意… 悲剧啊! 教训啊! 惨痛的刻骨铭心的教训啊!!
Comments (3) ·· Tags: C++·内存·编程