<?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[dynamic_cast segmentation fault mit vector]]></title><description><![CDATA[<p>Hi,</p>
<p>folgender code:</p>
<pre><code>for( unsigned i = 0; i &lt; recs.size(); i++ ) {

      Record* r = recs[i];
      vector&lt;Record*&gt; allElements;
      allElements.push_back(r);

      //hier würde der cast funktionieren
      Bla* tmp= dynamic_cast&lt;Bla*&gt;( r );

      for( unsigned u = 0; i &lt; allElements.size(); u++ ) {
         //hier würde er einen segmentation fault produzieren
         Bla* tmp= dynamic_cast&lt;Bla*&gt;( allElements[u] );
      }
}
</code></pre>
<p>Kann mir das einer erklären?<br />
Gehen beim Einfügen in den vector irgendwelche Meta-Informationen verloren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/327369/dynamic_cast-segmentation-fault-mit-vector</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 12:06:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327369.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Aug 2014 15:01:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dynamic_cast segmentation fault mit vector on Thu, 07 Aug 2014 15:01:32 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>folgender code:</p>
<pre><code>for( unsigned i = 0; i &lt; recs.size(); i++ ) {

      Record* r = recs[i];
      vector&lt;Record*&gt; allElements;
      allElements.push_back(r);

      //hier würde der cast funktionieren
      Bla* tmp= dynamic_cast&lt;Bla*&gt;( r );

      for( unsigned u = 0; i &lt; allElements.size(); u++ ) {
         //hier würde er einen segmentation fault produzieren
         Bla* tmp= dynamic_cast&lt;Bla*&gt;( allElements[u] );
      }
}
</code></pre>
<p>Kann mir das einer erklären?<br />
Gehen beim Einfügen in den vector irgendwelche Meta-Informationen verloren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412403</guid><dc:creator><![CDATA[BamDenied]]></dc:creator><pubDate>Thu, 07 Aug 2014 15:01:32 GMT</pubDate></item><item><title><![CDATA[Reply to dynamic_cast segmentation fault mit vector on Thu, 07 Aug 2014 15:05:50 GMT]]></title><description><![CDATA[<p>Ein Cast an sich kann doch gar keinen Segfault produzieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412406</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Thu, 07 Aug 2014 15:05:50 GMT</pubDate></item><item><title><![CDATA[Reply to dynamic_cast segmentation fault mit vector on Thu, 07 Aug 2014 15:15:57 GMT]]></title><description><![CDATA[<p>Ohne viel zu schauen sehe ich das:</p>
<pre><code>for( unsigned u = 0; i &lt; allElements.size(); u++ )
</code></pre>
<p>Vielleicht ist u &lt; allElements.size() besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412409</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 07 Aug 2014 15:15:57 GMT</pubDate></item><item><title><![CDATA[Reply to dynamic_cast segmentation fault mit vector on Thu, 07 Aug 2014 15:22:18 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Ein Cast an sich kann doch gar keinen Segfault produzieren?</p>
</blockquote>
<p>Glaube, ein dynamic_cast kanns. Der muss irgendwelche Zeiger auf aktuelle Typinformationen haben (vielleich in die vtbl eingebaut), und wenn der verbogen ist, knallts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412410</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 07 Aug 2014 15:22:18 GMT</pubDate></item><item><title><![CDATA[Reply to dynamic_cast segmentation fault mit vector on Thu, 07 Aug 2014 15:39:28 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>Ein Cast an sich kann doch gar keinen Segfault produzieren?</p>
</blockquote>
<p>Glaube, ein dynamic_cast kanns. Der muss irgendwelche Zeiger auf aktuelle Typinformationen haben (vielleich in die vtbl eingebaut), und wenn der verbogen ist, knallts.</p>
</blockquote>
<p>ich denke nicht. imho sollte nur dynamic_cast werfen dürfen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412416</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 07 Aug 2014 15:39:28 GMT</pubDate></item><item><title><![CDATA[Reply to dynamic_cast segmentation fault mit vector on Thu, 07 Aug 2014 15:50:48 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Arcoth schrieb:</p>
<blockquote>
<p>Ein Cast an sich kann doch gar keinen Segfault produzieren?</p>
</blockquote>
<p>Glaube, ein dynamic_cast kanns. Der muss irgendwelche Zeiger auf aktuelle Typinformationen haben (vielleich in die vtbl eingebaut), und wenn der verbogen ist, knallts.</p>
</blockquote>
<p>ich denke nicht. imho sollte nur dynamic_cast werfen dürfen</p>
</blockquote>
<p>Nehmen wir mal</p>
<pre><code>Bla* b=reinterpret_cast&lt;Bla*&gt;(17);
</code></pre>
<p>Meinste, der dynamic_cast kann ohne Segfault feststellen, welchen Typ das Objekt *b hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412418</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 07 Aug 2014 15:50:48 GMT</pubDate></item><item><title><![CDATA[Reply to dynamic_cast segmentation fault mit vector on Thu, 07 Aug 2014 15:48:33 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Ohne viel zu schauen sehe ich das:</p>
<pre><code>for( unsigned u = 0; i &lt; allElements.size(); u++ )
</code></pre>
<p>Vielleicht ist u &lt; allElements.size() besser.</p>
</blockquote>
<p>Unter anderem deshalb verwendet man hier besser das range-based for.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412421</guid><dc:creator><![CDATA[for(each)]]></dc:creator><pubDate>Thu, 07 Aug 2014 15:48:33 GMT</pubDate></item><item><title><![CDATA[Reply to dynamic_cast segmentation fault mit vector on Thu, 07 Aug 2014 16:07:33 GMT]]></title><description><![CDATA[<p>oh. ging ja auch noch um dynamic_cast und nich reinterpret... sry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2412429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2412429</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 07 Aug 2014 16:07:33 GMT</pubDate></item></channel></rss>