<?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[strange !!]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main()
{

const int x=3;

int * p=(int*) &amp;x;

*p=10;

cout&lt;&lt;*p;  // *p = 10
cout&lt;&lt;x;   // x ist immer noch 3 !!

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/296503/strange</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 22:35:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296503.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Dec 2011 02:25:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 02:27:20 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main()
{

const int x=3;

int * p=(int*) &amp;x;

*p=10;

cout&lt;&lt;*p;  // *p = 10
cout&lt;&lt;x;   // x ist immer noch 3 !!

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2153664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153664</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Tue, 06 Dec 2011 02:27:20 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 03:13:28 GMT]]></title><description><![CDATA[<p>Da du dem Compiler ja sagst x sei konstant, setzt er vermutlich den Wert direkt ein ohne nochmal nachzusehen. Mach mal noch volatile vor die Definition von x und es wird klar, denke ich.</p>
<p>Wobei natürlich das gesamte Programm &quot;strange&quot; ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153668</guid><dc:creator><![CDATA[hmpf]]></dc:creator><pubDate>Tue, 06 Dec 2011 03:13:28 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 06:24:05 GMT]]></title><description><![CDATA[<p>auf eine konstante variable durch casten schreibend zuzugreifen ist nicht strange, sondern undefiniertes Verhalten. Sei Froh, dass hinter der Addresse von dem Teil nichts wichtiges stand und dein cout dir dann nicht ausversehen die Festplatte formatiert hat <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/2153676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153676</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 06 Dec 2011 06:24:05 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 09:50:20 GMT]]></title><description><![CDATA[<p>heisst das der Compiler speichert meine const Variable doppelt ?<br />
Schließlich steht an der Adresse der const Variable jetzt 10 und nicht mehr 3 als Wert.</p>
<p>Wenn ich volatile verwende sagt er mir stack corrupted.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153734</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Tue, 06 Dec 2011 09:50:20 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 09:57:36 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>Wenn ich volatile verwende sagt er mir stack corrupted.</p>
</blockquote>
<p>Das ist doch genug Info, oder?</p>
<p>Dein Code produziert undefiniertes verhalten. Da kommt halt was lustiges raus.</p>
<p>Ist wie russisches Roulette spielen. Da kann man sich auch nicht beschweren dass nach 2 mal abdrücken immer noch nix passiert ist aber beim 3. mal schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153738</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 06 Dec 2011 09:57:36 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 10:33:59 GMT]]></title><description><![CDATA[<p>sorry falsche Info bei volatile gibt er den neuen Wert also 10 aus !!!<br />
Also dann passts ja <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Meine const Variable wurde erfolgreich verändert.</p>
<p>Warum er ohne Variable immer noch den alten Wert 3 ausgibt liegt daran dass er den Wert in einem Prozessor Register nochmal gespeichert hatte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153752</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Tue, 06 Dec 2011 10:33:59 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 10:38:24 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>Warum er ohne Variable immer noch den alten Wert 3 ausgibt liegt daran dass er den Wert in einem Prozessor Register nochmal gespeichert hatte.</p>
</blockquote>
<p>Hast du dir das ganz alleine ausgedacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153754</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 06 Dec 2011 10:38:24 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 10:47:32 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>Warum er ohne Variable immer noch den alten Wert 3 ausgibt liegt daran dass er den Wert in einem Prozessor Register nochmal gespeichert hatte.</p>
</blockquote>
<p>Nein es liegt daran, dass er ohne volatile dein cout &lt;&lt; x zu cout &lt;&lt; 3 optimiert. Darf er ja, x ist ja konstant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153760</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Tue, 06 Dec 2011 10:47:32 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 11:08:30 GMT]]></title><description><![CDATA[<p>Wenn wir schon bei Optimierungen sind, was könnte man denn hier optimieren<br />
Ich habs grade mehrmal ausgeführt und es kam immer dasselbe raus , auch wenn ich sum als volatile deklariert hatte.</p>
<pre><code class="language-cpp">sum = 0;
  for ( i = 0; i &lt; n; i++ )
    sum += a[i];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2153766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153766</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Tue, 06 Dec 2011 11:08:30 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 11:14:01 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>Wenn wir schon bei Optimierungen sind, was könnte man denn hier optimieren<br />
Ich habs grade mehrmal ausgeführt und es kam immer dasselbe raus , auch wenn ich sum als volatile deklariert hatte.</p>
<pre><code class="language-cpp">sum = 0;
  for ( i = 0; i &lt; n; i++ )
    sum += a[i];
</code></pre>
</blockquote>
<p>Wenn die Elemente im a die selbe sind, kommt auch immer das selbe raus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153771</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Tue, 06 Dec 2011 11:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 13:44:30 GMT]]></title><description><![CDATA[<p>Wie müßte der Code ausschauen , damit durch Compileroptimierung ein Problem entsteht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153858</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Tue, 06 Dec 2011 13:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 13:47:53 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>Wie müßte der Code ausschauen , damit durch Compileroptimierung ein Problem entsteht ?</p>
</blockquote>
<p>Im Allgemeinen lassen Compileroptimierung keine Probleme entstehen, höchstens Programmierer, die Wissen nicht, was sie tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153860</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Tue, 06 Dec 2011 13:47:53 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Tue, 06 Dec 2011 14:38:10 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>Wie müßte der Code ausschauen , damit durch Compileroptimierung ein Problem entsteht ?</p>
</blockquote>
<p>zum Beispiel, wenn eine als const markeirte Variable verändert wird.</p>
<p>Das Geheimnis ist nämlich, dass der C++ Standard für solch einfache Typen wie int erlaubt, dass die Variable gar nicht physisch vorhanden sein muss. Der Unterschied zwischen const und volatile const ist, dass du dem Compiler mitteilst: &quot;übrigens, wenn ich sage, dass das const ist, lüge ich. entweder ich oder ein anderer Prozess wird das wieder ändern und zwar zu zufälligen Zeitpunkten.&quot;</p>
<p>ansonsten kannst du mit nicht standardkonformen code noch beliebig lustiges verhalten erzeugen. Programmeir einfach standardkonform, dann musst du solche Fragen nicht stellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153886</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 06 Dec 2011 14:38:10 GMT</pubDate></item><item><title><![CDATA[Reply to strange !! on Wed, 07 Dec 2011 00:20:13 GMT]]></title><description><![CDATA[<blockquote>
<p>Wenn wir schon bei Optimierungen sind, was könnte man denn hier optimieren</p>
</blockquote>
<blockquote>
<p>Wie müßte der Code ausschauen , damit durch Compileroptimierung ein Problem entsteht ?</p>
</blockquote>
<p>Ich verstehe den Zusammenhang der beiden Fragen nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2154156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2154156</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 07 Dec 2011 00:20:13 GMT</pubDate></item></channel></rss>