<?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[Fehler in der STL Implementierung?]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich bekomme immer einen Segfault und weiß langsam keine andere Erklärung, als die, dass in der STL-Implementierung (gcc-4.1.1) was nicht stimmt. Ich iteriere über eine std::set<a href="std::string" rel="nofollow">std::string</a> und beim Weiterschalten des Iterators kommt es zum Segfault (&quot;8796 Segmentation fault&quot;):</p>
<pre><code class="language-cpp">/* stl_tree.h */
set&lt;string&gt;::iterator varIt = getV().begin();
while (varIt != getV().end()) {
  // ...
  ++varIt; // &lt;-- hier kommt der Segfault!
}
</code></pre>
<p>Der Iterator wird in der Schleife nicht weiter manipuliert, nur einmal dereferenziert. Auch das set wird in der Schleife nicht verändert.</p>
<p>Mit dem Debugger hab ich den Fehler bis hier hin verfolgt:</p>
<pre><code class="language-cpp">_Self&amp;
operator++()
{
 _M_node = _Rb_tree_increment(_M_node); // &lt;-- hier knallts!
 return *this;
}
</code></pre>
<p>Ich weiß echt nicht weiter :(, hat jemand von Euch eine Idee?</p>
<p>1000 Dank!<br />
Chrissi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/185949/fehler-in-der-stl-implementierung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 06:36:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185949.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Jul 2007 12:15:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler in der STL Implementierung? on Tue, 03 Jul 2007 12:15:39 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich bekomme immer einen Segfault und weiß langsam keine andere Erklärung, als die, dass in der STL-Implementierung (gcc-4.1.1) was nicht stimmt. Ich iteriere über eine std::set<a href="std::string" rel="nofollow">std::string</a> und beim Weiterschalten des Iterators kommt es zum Segfault (&quot;8796 Segmentation fault&quot;):</p>
<pre><code class="language-cpp">/* stl_tree.h */
set&lt;string&gt;::iterator varIt = getV().begin();
while (varIt != getV().end()) {
  // ...
  ++varIt; // &lt;-- hier kommt der Segfault!
}
</code></pre>
<p>Der Iterator wird in der Schleife nicht weiter manipuliert, nur einmal dereferenziert. Auch das set wird in der Schleife nicht verändert.</p>
<p>Mit dem Debugger hab ich den Fehler bis hier hin verfolgt:</p>
<pre><code class="language-cpp">_Self&amp;
operator++()
{
 _M_node = _Rb_tree_increment(_M_node); // &lt;-- hier knallts!
 return *this;
}
</code></pre>
<p>Ich weiß echt nicht weiter :(, hat jemand von Euch eine Idee?</p>
<p>1000 Dank!<br />
Chrissi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317455</guid><dc:creator><![CDATA[Chrissi17]]></dc:creator><pubDate>Tue, 03 Jul 2007 12:15:39 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in der STL Implementierung? on Tue, 03 Jul 2007 12:23:59 GMT]]></title><description><![CDATA[<p>Poste bitte die kürzeste Schleife, bei der es knallt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317464</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 03 Jul 2007 12:23:59 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in der STL Implementierung? on Tue, 03 Jul 2007 12:26:02 GMT]]></title><description><![CDATA[<p>könnte durchaus sein, das du deine iteratoren ungültig machst<br />
(und du froh sein kannst, das es kracht anstatt daten kaputt zu machen ohne das es bemerkt wird)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317465</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Tue, 03 Jul 2007 12:26:02 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in der STL Implementierung? on Tue, 03 Jul 2007 12:38:18 GMT]]></title><description><![CDATA[<p>Hey, danke für eure Posts!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20068">@Michael</a>: Mach ich übermorgen, ok? Komme grad nicht an den Code ran (bin schon aufm Heimweg ;)).<br />
@R0nny: Ja, da hast du allerdings Recht. Das wird häufig vergessen.</p>
<p>Ich hab jetzt das set zum Test in nen vector übertragen, auf dessen Inhalt ich dann mit dem Indexoperator zugreife: Kein Segfault mehr (ich hoffe es ist jetzt nicht so, wie r0nny geschrieben hat...).</p>
<p>Aber wissen, wo dran es lag, will ich schon...</p>
<p>Chrissi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317479</guid><dc:creator><![CDATA[Chrissi17]]></dc:creator><pubDate>Tue, 03 Jul 2007 12:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in der STL Implementierung? on Tue, 03 Jul 2007 13:22:48 GMT]]></title><description><![CDATA[<p>Implementierst du da ne Baumstruktur?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317513</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 03 Jul 2007 13:22:48 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in der STL Implementierung? on Wed, 04 Jul 2007 06:43:59 GMT]]></title><description><![CDATA[<p>Was liefert &quot;getV()&quot;? Wenn der Rückgabewert ein &quot;std::set<a href="std::string" rel="nofollow">std::string</a>&quot; ist, dann erzeugt getV().begin() einen Iterator auf eine temporäre Kopie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317908</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 04 Jul 2007 06:43:59 GMT</pubDate></item></channel></rss>