前一天写代码, 第二天再review, 会更容易发现问题. 老生常谈, 内存泄漏. 有malloc没有对应的free.
这个问题显见的原因是忘了, 不那么容易发现的原因是在malloc和free之间, 在某个分支下return了, 造成只在特定情形下才泄漏. 更难发现的情况是: malloc和free的责任不在一个函数内, 这种情况根本就是不好的接口设计的典范, 应该完全避免.
如果能用C++, 避免这个问题的另一办法就是使用string, 即使是二进制数据, string也能对付, 是的, 小心使用, string可以管理包括0在内的二进制数据.
阅读(1216) | 评论(0) | 转发(0) |