libxml2に関する質問です。
現在libxml2を用いて、xmlファイルを読み込んでいます。
xmlTextReader~~()でxmlファイル内の文字列をxmlChar型で読み込み、charにキャストして保存しています。
xmlTextReader~~()は、内部で動的にメモリ確保を行っており、使用後にdeallocateが必要だとマニュアルには記載されています。
charにキャストした文字列を使用後、メモリを解放したいのですが、うまくいきません。
xmlCharからchar*にキャストすることで、解放するメモリ位置がおかしくなるなんてことは起こり得ますか?
C++
1xmlTextReaderPtr reader; 2xmlChar* nodeName; 3xmlChar* attrival; 4 5typedef struct{ 6char* mozi; 7}st; 8 9//ノード名を判定 10nodeName = xmlTextReaderName(reader); 11if(xmlStrcmp(nodeName, BAD_CAST "node") == 0){ 12 //属性を文字列で取得(内部的にmallocしている) 13 attrival = xmlTextReaderGetAttribute(reader); 14 //xmlChar*をchar*にキャストして処理 15 process((char* )attrival); 16} 17: 18:省略 19: 20 21xmlFree(st.mozi);
process()は、char*型のメンバ変数を持つクラスに、取得した文字列attrivalを代入する処理をします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/09 04:12
2015/12/09 04:42