<?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[C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined?]]></title><description><![CDATA[<p>Hallo,<br />
wie im Betreff angegeben</p>
<pre><code>T* foo = new T();
T* bar = foo ;
delete foo ;

bar-&gt;machWas() ; // undefined oder implementation defined
</code></pre>
<p>ist das verwenden eines dangling pointers undefiniert, oder vom Compiler hHersteller abhängig?</p>
<p>und gab es hier änderungen? Ich fand diese<br />
<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#1438" rel="nofollow">http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#1438</a><br />
jedoch hier,<br />
<a href="http://cs.nyu.edu/courses/summer11/G22.2110-001/documents/c++2003std.pdf" rel="nofollow">http://cs.nyu.edu/courses/summer11/G22.2110-001/documents/c++2003std.pdf</a><br />
finde ich nichts dazu. 3.7.4 ist recht kurz im original standard.</p>
<p>oder schau ich sowieso bei der falschen Stelle nach?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337934/c-03-11-standard-dangling-pointer-verwenden-undefined-oder-implementation-defined</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 12:20:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337934.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 May 2016 09:02:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined? on Wed, 11 May 2016 09:02:41 GMT]]></title><description><![CDATA[<p>Hallo,<br />
wie im Betreff angegeben</p>
<pre><code>T* foo = new T();
T* bar = foo ;
delete foo ;

bar-&gt;machWas() ; // undefined oder implementation defined
</code></pre>
<p>ist das verwenden eines dangling pointers undefiniert, oder vom Compiler hHersteller abhängig?</p>
<p>und gab es hier änderungen? Ich fand diese<br />
<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#1438" rel="nofollow">http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#1438</a><br />
jedoch hier,<br />
<a href="http://cs.nyu.edu/courses/summer11/G22.2110-001/documents/c++2003std.pdf" rel="nofollow">http://cs.nyu.edu/courses/summer11/G22.2110-001/documents/c++2003std.pdf</a><br />
finde ich nichts dazu. 3.7.4 ist recht kurz im original standard.</p>
<p>oder schau ich sowieso bei der falschen Stelle nach?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495492</guid><dc:creator><![CDATA[kurze_frage]]></dc:creator><pubDate>Wed, 11 May 2016 09:02:41 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined? on Wed, 11 May 2016 09:15:50 GMT]]></title><description><![CDATA[<p>Das ist doch völlig irrelevant. Lass es!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495495</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 11 May 2016 09:15:50 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined? on Wed, 11 May 2016 09:23:40 GMT]]></title><description><![CDATA[<p>Unter der Annahme, dass machWas eine nicht-statische Memberfunktion ist: Undefiniert.</p>
<p>Vielleicht verstehe ich auch deine Frage nicht ganz richtig, denn die zitierte Passage hat nicht direkt etwas damit zu tun, wie ich deine Frage verstanden habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495496</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 11 May 2016 09:23:40 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined? on Wed, 11 May 2016 09:26:22 GMT]]></title><description><![CDATA[<p>Es geht dort nicht um das Dereferenzieren (bei dir also <code>bar-&gt;machwas</code> , sondern um die Verwendung des nicht-dereferenzierten Pointers (&quot;This includes not only dereferencing the pointer but even just fetching its value.&quot;), also sowas</p>
<pre><code>T* foo = new T();
delete foo;
T* dieseKopieIstUB = foo;
</code></pre>
<p>Hier wird also foo nochmal verwendet, nachdem foo deleted wurde. Der Artikel stellt die Frage, ob es nötig ist, dass obige Kopie UB ist. Es geht nicht darum, die Kopie auch zu dereferenzieren, was klar UB ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495498</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Wed, 11 May 2016 09:26:22 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined? on Wed, 11 May 2016 10:01:26 GMT]]></title><description><![CDATA[<p>primär geht es darum wie ich in einen Bug Report priorisiere.</p>
<p>es wird ein Pointer verwendet der zu einem Objekt zeigt welches gelöscht wurde</p>
<p>Verwendung eines invalid pointer value</p>
<p><a href="http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf" rel="nofollow">http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf</a><br />
6.3.2.3 Pointers Punkt 20 meint undefiniert.</p>
<p>Das meine ich auch.</p>
<p>Es gibt Kollegen die meinen es ist garantiert das es sofort crashed.<br />
(crash is ok, fix daher später)</p>
<p>Ich will ich den Bug raufpriorisieren weil Crash =&gt; Restart eben nicht garantierte, sondern nur sehr wahrscheinlich ist, meiner bescheidenen Meinung nach.</p>
<p>Ich brauch aber ein Dokument auf welches ich verweisen kann, am besten eben C++ Standard, (Version 03), damit das ohne weitere Diskussion durchgeht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495504</guid><dc:creator><![CDATA[kurze_frage]]></dc:creator><pubDate>Wed, 11 May 2016 10:01:26 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined? on Wed, 11 May 2016 10:04:56 GMT]]></title><description><![CDATA[<p>Beweis durch Widerspruch:<br />
Mach eine main drum und lass es auf einem beliebigen System als Releasebuild laufen. Ich bin mir ziemlich sicher, dass das immer ohne crash funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495505</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 11 May 2016 10:04:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined? on Wed, 11 May 2016 14:59:26 GMT]]></title><description><![CDATA[<p>kurze_frage schrieb:</p>
<blockquote>
<p>Ich brauch aber ein Dokument auf welches ich verweisen kann, am besten eben C++ Standard, (Version 03), damit das ohne weitere Diskussion durchgeht.</p>
</blockquote>
<p>Das Dokument hast du ja schon. Es ist undefined behavior. Es kann passieren das da was crasht, du hast aber auch ne gute Chance das es einfach weiterläuft und irgendwo anders dann ggf Daten zerschossen werden wenn du pech hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495526</guid><dc:creator><![CDATA[Xebov]]></dc:creator><pubDate>Wed, 11 May 2016 14:59:26 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined? on Wed, 11 May 2016 15:48:56 GMT]]></title><description><![CDATA[<blockquote>
<p>Es gibt Kollegen die meinen es ist garantiert das es sofort crashed.</p>
</blockquote>
<p>So eine Art von Verhalten gibt es im Standard nicht, weil es völlig unklar wäre, was als Crash gilt, und welche Art von Crash überhaupt auf allen Plattformen implementierbar ist. Deine Platform könnte einen Crash festlegen. Auf einem gewöhnlichen System generiert bspw. die MMU einen trap, welcher dann über dein OS als Segfault gemeldet wird. Auf einem System ohne entsprechende Hardware wird es vielleicht anders ausgehen. Dieses Systemabhängige Ausnahmeverhalten ist als &quot;undefiniertes Verhalten&quot; im Standard zu finden.</p>
<blockquote>
<p>Ich brauch aber ein Dokument auf welches ich verweisen kann, am besten eben C++ Standard, (Version 03), damit das ohne weitere Diskussion durchgeht.</p>
</blockquote>
<p>Es macht wenig Sinn sich auf C++03 zu beschränken, wenn die Chance besteht, defekte Teile zu zitieren. Wenn die Teile nicht defekt sind, hätte man gleich C++14 zitieren können (welches im Übrigen auch eher auf das Verhalten aktueller Implementierungen zutrifft, und ich hoffe doch stark, dass ihr nicht mit VS2005 arbeitet).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495528</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 11 May 2016 15:48:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ 03&#x2F;11 standard,  dangling pointer verwenden = undefined oder implementation defined? on Thu, 12 May 2016 06:59:43 GMT]]></title><description><![CDATA[<p>Xebov schrieb:</p>
<blockquote>
<p>Das Dokument hast du ja schon. Es ist undefined behavior. Es kann passieren das da was crasht, du hast aber auch ne gute Chance das es einfach weiterläuft und irgendwo anders dann ggf Daten zerschossen werden wenn du pech hast.</p>
</blockquote>
<p>ja, hab sogar was besseres gefunden, nutzte nur leider nix.</p>
<p>Arcoth schrieb:</p>
<blockquote>
<p>So eine Art von Verhalten gibt es im Standard nicht, weil es völlig unklar wäre, was als Crash gilt, und welche Art von Crash überhaupt auf allen Plattformen implementierbar ist. Deine Platform könnte einen Crash festlegen. Auf einem gewöhnlichen System generiert bspw. die MMU einen trap, welcher dann über dein OS als Segfault gemeldet wird. Auf einem System ohne entsprechende Hardware wird es vielleicht anders ausgehen. Dieses Systemabhängige Ausnahmeverhalten ist als &quot;undefiniertes Verhalten&quot; im Standard zu finden.</p>
</blockquote>
<p>ja eben, das denke ich auch und ich bin der Meinung wenn man Qualität liefern sollte dann macht man einfach den existierenden fix noch ins bevorstehende Release weil das geht schneller als ewig drüber zu diskutieren. (cherrypick 5 Minuten, Testen 0,5 Tage 1 Person, Diskussion= mehrere Leute sind den halben Tag, eventuell länger, abgelegt)</p>
<p>Arcoth schrieb:</p>
<blockquote>
<p>Es macht wenig Sinn sich auf C++03 zu beschränken, wenn die Chance besteht, defekte Teile zu zitieren. Wenn die Teile nicht defekt sind, hätte man gleich C++14 zitieren können (welches im Übrigen auch eher auf das Verhalten aktueller Implementierungen zutrifft, und ich hoffe doch stark, dass ihr nicht mit VS2005 arbeitet).</p>
</blockquote>
<p>da hast du recht, nur muss es jetzaein C++03 document sein weil sonst sagt mir der Code Author das ich von was ganz anderem spreche.<br />
gcc, nicht die aktuellste weil mehrerer Plattformen, x86, unterschiedliche arm, die embedded Welt bewegt sich langsam.</p>
<p>hier gibt es etwas dazu,<br />
<a href="http://cs.nyu.edu/courses/summer11/G22.2110-001/documents/c++2003std.pdf" rel="nofollow">http://cs.nyu.edu/courses/summer11/G22.2110-001/documents/c++2003std.pdf</a></p>
<p>3.7.3.2 Punkt 4 das selbe wie im C Standard, nur mit einer Fussnote das Hersteller einen vielleicht einen Crash implementieren ... das reichte, wir fixen später,<br />
egal, ich hab es dokumentiert, es ist nur ein Job, irgendwann lande ich in einem Umfeld die Qualität ähnlich ernst nimmt ... bis dahin hoffe ich dass ich mich nicht zu sehr anpasse, und versuche zu lernen warum es besser sein kann wenn viele Leute einen Halben Tag lang reden und nix tun, als 1 Person einen halben Tag lang arbeitet und etwas repariert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2495551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2495551</guid><dc:creator><![CDATA[kurze_frage]]></dc:creator><pubDate>Thu, 12 May 2016 06:59:43 GMT</pubDate></item></channel></rss>