对于一个小型的嵌入式应用程序,我编写了一些函数 + 结构作为字符串缓冲区(类似于 C++ 中的 std::stringstream)。
虽然这样的代码工作正常,但有一些不那么小问题:
- 我以前从未在 C 中编写过手动分配和使用不断增长的内存的函数,因此恐怕仍有一些怪癖需要解决
- 看起来代码分配的内存比它实际需要的多得多,这是非常糟糕的
- 由于 valgrind 报告的警告,我已经从代码中的一个地方切换
malloc
到calloc
了,这成功地删除了警告,但我不完全确定我是否真的正确使用它
我的意思是它分配的比它真正需要的多的例子(使用 56k 文件):
==23668== HEAP SUMMARY:
==23668== in use at exit: 0 bytes in 0 blocks
==23668== total heap usage: 49,998 allocs, 49,998 frees, 1,249,875,362 bytes allocated
......它看起来不正确......
有问题的代码在这里(太大而无法<code>
在 SO 的字段中复制):http ://codepad.org/LQzphUzd
需要帮助,我很感激任何建议!