1. 背景

动态存储分配在 C 编程中扮演着重要的角色;它也是滋生大量难以追踪的错误的地方。对已分配的块释放两次,超出 malloc 分配的缓冲区边界运行,以及未能跟踪已分配块的地址都是常见的错误,这些错误使程序员感到沮丧 - 由于这些错误通常表现为与程序员实际犯错的地方相距甚远的 “神秘行为”,因此调试它们非常困难。