我正在存储从以下 tinyxml2 函数返回的 const char*:
const char* tinyxml2::XMLElement::Attribute (const char * name, const char * value = 0)
但是,我最近意识到字符串数据会随着时间的推移而损坏,可能是在多次调用 Attribute() 之后。我要将 const char* 更改为 std::string 但我只想了解为什么会发生这种情况。
我尝试查看源代码,但我不明白为什么会发生这种情况。看起来 Attribute() 调用了 Value(),而后者又调用了 GetStr():
https://github.com/leethomason/tinyxml2/blob/master/tinyxml2.cpp
谁能告诉我为什么 GetStr() 返回的 const char* 指向的数据会损坏?