<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Speicherzugriffsfehler beim Iterieren über std::list&amp;lt;MyObject*&amp;gt;]]></title><description><![CDATA[<p>moin,</p>
<p>ich verwalte in</p>
<pre><code>std::list&lt;MyObject*&gt; myList
</code></pre>
<p>eine Reihe von Objekten die es via Event zu speichern gilt.<br />
gespeichert wird in xml per xerces-c SAX/DOM api.</p>
<p>ich erstelle ein domdocument und so weiter... wunderbar muss nicht weiter erläutert werden.<br />
DAS PROBLEM taucht auf, sobald ich über diese list iteriere und mit dem iteratorzeiger auf das jewilige objekt zeige, welches eine instanz der klasse hält, das wiederum diese liste hält.</p>
<p>beim debuggen ist aufgefallen, dass die liste der grund für den speicherzugriffsfehler ist. ich komm nicht mer weiter bitte um hilfe.</p>
<pre><code class="language-cpp">class Game: public Gtk::Window {
...
};

void Game::toDOM()
{

    XMLPlatformUtils::Initialize();
    static const XMLCh gLS[] = { chLatin_L, chLatin_S, chNull };
    DOMImplementation *impl
      = DOMImplementationRegistry::getDOMImplementation(gLS);
       XMLCh tempStr[100];

        XMLString::transcode(&quot;document&quot;, tempStr, 99);
        DOMDocument*   doc = impl-&gt;createDocument(0, tempStr, 0);

        XMLString::transcode(&quot;root&quot;, tempStr, 99);

        std::cout&lt;&lt;&quot;nach root;&quot;&lt;&lt;std::endl;

	DOMNode* node=doc-&gt;createElement(tempStr);

        std::cout&lt;&lt;&quot;nach DOMElement* rootnode=doc-&gt;getDocumentElement();&quot;&lt;&lt;std::endl;

/////////////////ab hier
        typedef std::list&lt;MyObject*&gt;::iterator iter ;

        for (iter i = this-&gt;spiel-&gt;list.begin(); i != this-&gt;spiel-&gt;list.end();i++){
	    // hier sind schon element deklarationen 
            // alle attribute durch i-&gt;toXML(doc) gesetzt

               /////////////////////////////////////////////////////
               // hier wird speicherzugriffsfehler ausgelöst!!!!! //
               /////////////////////////////////////////////////////
                DOMElement* temp = (*i)-&gt;toXML(doc);
                std::cout&lt;&lt;&quot;temp zuweisung&quot;&lt;&lt;std::endl;
                node-&gt;appendChild(temp);

        }
        std::cout&lt;&lt;doc&lt;&lt;std::endl; 

        serializeDOM(doc);
        doc-&gt;release(); 

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/132842/speicherzugriffsfehler-beim-iterieren-über-std-list-lt-myobject-gt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 17:05:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/132842.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Jan 2006 14:09:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherzugriffsfehler beim Iterieren über std::list&amp;lt;MyObject*&amp;gt; on Fri, 13 Jan 2006 14:09:58 GMT]]></title><description><![CDATA[<p>moin,</p>
<p>ich verwalte in</p>
<pre><code>std::list&lt;MyObject*&gt; myList
</code></pre>
<p>eine Reihe von Objekten die es via Event zu speichern gilt.<br />
gespeichert wird in xml per xerces-c SAX/DOM api.</p>
<p>ich erstelle ein domdocument und so weiter... wunderbar muss nicht weiter erläutert werden.<br />
DAS PROBLEM taucht auf, sobald ich über diese list iteriere und mit dem iteratorzeiger auf das jewilige objekt zeige, welches eine instanz der klasse hält, das wiederum diese liste hält.</p>
<p>beim debuggen ist aufgefallen, dass die liste der grund für den speicherzugriffsfehler ist. ich komm nicht mer weiter bitte um hilfe.</p>
<pre><code class="language-cpp">class Game: public Gtk::Window {
...
};

void Game::toDOM()
{

    XMLPlatformUtils::Initialize();
    static const XMLCh gLS[] = { chLatin_L, chLatin_S, chNull };
    DOMImplementation *impl
      = DOMImplementationRegistry::getDOMImplementation(gLS);
       XMLCh tempStr[100];

        XMLString::transcode(&quot;document&quot;, tempStr, 99);
        DOMDocument*   doc = impl-&gt;createDocument(0, tempStr, 0);

        XMLString::transcode(&quot;root&quot;, tempStr, 99);

        std::cout&lt;&lt;&quot;nach root;&quot;&lt;&lt;std::endl;

	DOMNode* node=doc-&gt;createElement(tempStr);

        std::cout&lt;&lt;&quot;nach DOMElement* rootnode=doc-&gt;getDocumentElement();&quot;&lt;&lt;std::endl;

/////////////////ab hier
        typedef std::list&lt;MyObject*&gt;::iterator iter ;

        for (iter i = this-&gt;spiel-&gt;list.begin(); i != this-&gt;spiel-&gt;list.end();i++){
	    // hier sind schon element deklarationen 
            // alle attribute durch i-&gt;toXML(doc) gesetzt

               /////////////////////////////////////////////////////
               // hier wird speicherzugriffsfehler ausgelöst!!!!! //
               /////////////////////////////////////////////////////
                DOMElement* temp = (*i)-&gt;toXML(doc);
                std::cout&lt;&lt;&quot;temp zuweisung&quot;&lt;&lt;std::endl;
                node-&gt;appendChild(temp);

        }
        std::cout&lt;&lt;doc&lt;&lt;std::endl; 

        serializeDOM(doc);
        doc-&gt;release(); 

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/965584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/965584</guid><dc:creator><![CDATA[benshman]]></dc:creator><pubDate>Fri, 13 Jan 2006 14:09:58 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherzugriffsfehler beim Iterieren über std::list&amp;lt;MyObject*&amp;gt; on Fri, 13 Jan 2006 14:41:03 GMT]]></title><description><![CDATA[<p>Anhand des Codes lässt sich nicht erkennen ob this-&gt;spiel, this-&gt;spiel-&gt;list oder this-&gt;spiel-&gt;list[n] vernünftig (oder überhaupt) initialisiert wurden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/965632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/965632</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 13 Jan 2006 14:41:03 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherzugriffsfehler beim Iterieren über std::list&amp;lt;MyObject*&amp;gt; on Fri, 13 Jan 2006 15:09:56 GMT]]></title><description><![CDATA[<p>sie sind, da an anderer stelle schon durch callbacktimer alle x hundertstel sekunden über diese liste iteriert wird und mit den objekten auf die der iterator zeigt gearbeitet wird. das läuft schon.</p>
<p>die iteration ist nicht das problem. sie fiundet an anderer stelle HAARGENAUSO statt....</p>
<p>ich bin am verzweifeln</p>
]]></description><link>https://www.c-plusplus.net/forum/post/965690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/965690</guid><dc:creator><![CDATA[benshman]]></dc:creator><pubDate>Fri, 13 Jan 2006 15:09:56 GMT</pubDate></item></channel></rss>