找到解决方案
问题描述:我使用的是旧的 C 库,并且有一个类接收 const char * 作为函数中的参数。该函数正在创建一个动态对象并将其存储在使用 const char * 作为参数的链表中。
问题是这样做之后,传递给函数的 const char * 在类外的内存中被修改了。这破坏了节点中的数据。
解决方案:使用 std::string 作为类中的数据类型。当 const char * 作为值传递给字符串时,字符串会为您处理内存管理。
我学到的是?使用 C++ 时,请始终使用字符串,并且仅在某些 C 库中需要时才将 char * 与 string.c_str() 一起使用。
多谢你们。你救了我的周末。