1
我存儲一個const char *從以下tinyxml2函數返回:爲const char *成員
const char* tinyxml2::XMLElement::Attribute (const char * name, const char * value = 0)
然而,最近我意識到字符串數據變得隨着時間的推移,調用後可能損壞屬性()很多次。我將把const char *改爲std :: string,但我只想了解爲什麼會發生這種情況。
我試着翻看源代碼,但我不明白爲什麼會發生這種情況。它看起來像屬性()調用值(),它調用GetStr():
https://github.com/leethomason/tinyxml2/blob/master/tinyxml2.cpp
誰能告訴我爲什麼數據由爲const char *通過GetStr返回指向()會損壞?
總推測:它將整個文件讀入一個緩衝區並解析它,返回一個char *到緩衝區。如果任何root tinyxml對象所擁有的緩衝區被銷燬,緩衝區也將被銷燬。你所看到的腐敗現象可能就是那些尚未完全寫下來的釋放內存。 – David 2013-03-10 04:40:17