端午节前调试了一个恶心的bug。本以为只是小伙伴在分配(new)一个结构体后,通过消息发送给其它线程忘了释放。
在析构函数里加了delete之后好像屁效果都没有,一度怀疑人生。
折腾了半天,突然发现小伙伴对包含std::string的struct里习惯性的使用了memset(0)进行初始化,导致std::string在堆上分配的空间没有被正确释放。