xerces-C++を使用しています。私は実際にXMLString::release (XMLCh ** buf)
を使用しているようには見えないので、今すぐ再利用するたびに使用しています。このようなローカル変数: XMLString :: release(XMLCh ** buf)の使用
XMLCh* xmlStringVar = XMLString::Transcode("name");
XMLCh* fieldName = fieldsNodeList[NbreFlds]->getAttribute(xmlStringVar));
XMLString::release(&xmlStringVar);
xmlStringVar = XMLString::Transcode("id");
XMLCh* fieldId = fieldsNodeList[NbreFlds]->getAttribute(xmlStringVar));
は、何かが間違っているなら、私にこのコードを修正してください、あなたが機能
XMLString::release
のより明確な説明を得た場合お知らせください。
どうすれば可能ですか?いったんMemoryManager :: deallocateが起動されると、変数はもはや存在しないので、削除された後、再び変数をヌルポインタに変えます。 – Glolita
実際にポインタ**が指す**メモリ空間は、ポインタ自体ではなく削除されます。この削除の後、ポインタはダングリングポインタになり、無効なメモリ位置を指していることを意味します。無効なメモリにアクセスするのを防ぐために、ダングリングポインタをnullに割り当てるのがよい方法です。 – xaero99
よろしくお願いします。本当に助けてくれてありがとう。 – Glolita