<?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[Rätsel]]></title><description><![CDATA[<p>Huhu ihrs,</p>
<p>mein Professor hat mir ein Programm gezeigt, welches in einem Programmierwettbewerb dran kam.</p>
<p>Jetzt dacht ich, ich zeig das euch Profis mal <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="🙂"
    /></p>
<p>Ich selbst habe keinen blassen Schimmer was das Programm tut<br />
... noch zu hoch für mich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class B
{
    public:
        B() {}
        virtual ~B() {}
        virtual int doIt() { return 1; }
};

class D : public B
{
    public:
        D() {}
        virtual ~D() {}
        virtual int doIt() { return 2; }
};

class M : public B
{
    public:
        M() {}
        virtual ~M() {}
        virtual int doIt() { return doItToo() * 5; }
        virtual int doItToo() { return 0; }
};

int tryIt()
{
    D d;
    void* dv = *((void**)&amp;d);

    void* nv[3];
    memcpy( (void*)nv, dv, 2*sizeof(void*) );
    nv[2] = nv[1];

    M m;
    nv[1] = (*((void***)&amp;m)) [1];
    *((void**)&amp;d) = (void*)nv;

    typedef int (D::*DM) ();
    DM dm = (DM) &amp;B::doIt;

    return (d.*dm) ();
}

int main()
{
    cout &lt;&lt; &quot;Ergebnis: &quot; &lt;&lt; tryIt();

    system(&quot;pause&gt;nul&quot;);
    return 0;
}
</code></pre>
<p>- Man musste herausfinden was das Programm tut.<br />
- Man musste nicht herausfinden was die Ausgabe des Programmes ist.</p>
<p>Wer lust hat kann ja mal rumrätseln,<br />
und wer nicht, der nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Achja... der Professor meinte noch es hätte kein Wettbewerb-Teilnehmer hinbekommen.</p>
<p>MFG Dweb</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235568/rätsel</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 04:07:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235568.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Mar 2009 20:33:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rätsel on Tue, 03 Mar 2009 20:33:45 GMT]]></title><description><![CDATA[<p>Huhu ihrs,</p>
<p>mein Professor hat mir ein Programm gezeigt, welches in einem Programmierwettbewerb dran kam.</p>
<p>Jetzt dacht ich, ich zeig das euch Profis mal <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="🙂"
    /></p>
<p>Ich selbst habe keinen blassen Schimmer was das Programm tut<br />
... noch zu hoch für mich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class B
{
    public:
        B() {}
        virtual ~B() {}
        virtual int doIt() { return 1; }
};

class D : public B
{
    public:
        D() {}
        virtual ~D() {}
        virtual int doIt() { return 2; }
};

class M : public B
{
    public:
        M() {}
        virtual ~M() {}
        virtual int doIt() { return doItToo() * 5; }
        virtual int doItToo() { return 0; }
};

int tryIt()
{
    D d;
    void* dv = *((void**)&amp;d);

    void* nv[3];
    memcpy( (void*)nv, dv, 2*sizeof(void*) );
    nv[2] = nv[1];

    M m;
    nv[1] = (*((void***)&amp;m)) [1];
    *((void**)&amp;d) = (void*)nv;

    typedef int (D::*DM) ();
    DM dm = (DM) &amp;B::doIt;

    return (d.*dm) ();
}

int main()
{
    cout &lt;&lt; &quot;Ergebnis: &quot; &lt;&lt; tryIt();

    system(&quot;pause&gt;nul&quot;);
    return 0;
}
</code></pre>
<p>- Man musste herausfinden was das Programm tut.<br />
- Man musste nicht herausfinden was die Ausgabe des Programmes ist.</p>
<p>Wer lust hat kann ja mal rumrätseln,<br />
und wer nicht, der nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Achja... der Professor meinte noch es hätte kein Wettbewerb-Teilnehmer hinbekommen.</p>
<p>MFG Dweb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673688</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 03 Mar 2009 20:33:45 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Tue, 03 Mar 2009 20:43:29 GMT]]></title><description><![CDATA[<p>WTF?</p>
<p>Also wenn schon obfuscation, dann richtig.</p>
<p>Wobei hier wohl das grösste Rätsel ist, ob das auch Standardkonformer Code ist und somit die Aufgabe überhaupt Sinn macht. <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="😉"
    /> - Was es macht kannst du ja mal auf ein paar Implementierungen testen und mit dem Debugger verfolgen.. Dann weisst dus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673691</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 03 Mar 2009 20:43:29 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Tue, 03 Mar 2009 22:12:19 GMT]]></title><description><![CDATA[<p>Es ist nicht standardkonform und es wird doof im vtable rumgepatcht.<br />
Draufzukommen was das Ding *genau* tut sollte überhaupt kein Problem sein, bloss soweit interessiert es mich nun wirklich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673776</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 03 Mar 2009 22:12:19 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Wed, 04 Mar 2009 09:59:45 GMT]]></title><description><![CDATA[<p>Stürzt auch schön ab. <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/1673930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673930</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 04 Mar 2009 09:59:45 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Wed, 04 Mar 2009 10:02:49 GMT]]></title><description><![CDATA[<p>also bei mir kommt 22 raus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673937</guid><dc:creator><![CDATA[Gustl]]></dc:creator><pubDate>Wed, 04 Mar 2009 10:02:49 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Wed, 04 Mar 2009 10:09:08 GMT]]></title><description><![CDATA[<p>Is doch ziemlich langweilig... Und <em>noch</em> unsinniger. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1673948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1673948</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 04 Mar 2009 10:09:08 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Wed, 04 Mar 2009 11:04:05 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>[...] und es wird doof im vtable rumgepatcht.</p>
</blockquote>
<p>Oder auch nicht, je nach Implementierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674001</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 04 Mar 2009 11:04:05 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Wed, 04 Mar 2009 11:06:46 GMT]]></title><description><![CDATA[<p>Gustl schrieb:</p>
<blockquote>
<p>also bei mir kommt 22 raus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Bei mir 10. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674005</guid><dc:creator><![CDATA[Languste]]></dc:creator><pubDate>Wed, 04 Mar 2009 11:06:46 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Wed, 04 Mar 2009 12:07:09 GMT]]></title><description><![CDATA[<p>Also ich hoffe mal, dass die Aufgabe unter dem Gedanken von Standardkonformität gestellt wurde. (und warum man hie und da doch darauf achten sollte..)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674055</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Mar 2009 12:07:09 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Wed, 04 Mar 2009 12:17:44 GMT]]></title><description><![CDATA[<p>Gibts dazu auch eine Erläuterung online?</p>
<p>Oder kann eventuell jemand was dazu sagen, warum das (nicht) Standardkonform ist? Und was meint Ihr genau mit Implementierungen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674067</guid><dc:creator><![CDATA[iop_offline]]></dc:creator><pubDate>Wed, 04 Mar 2009 12:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Wed, 04 Mar 2009 12:19:04 GMT]]></title><description><![CDATA[<p>Standard gibts hier als draft:<br />
<a href="http://www.open-std.org/jtc1/sc22/wg21/" rel="nofollow">http://www.open-std.org/jtc1/sc22/wg21/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674071</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Mar 2009 12:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Wed, 04 Mar 2009 13:19:11 GMT]]></title><description><![CDATA[<p>Bei mir gibt das Programm eine 10 aus ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674117</guid><dc:creator><![CDATA[blup]]></dc:creator><pubDate>Wed, 04 Mar 2009 13:19:11 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Thu, 05 Mar 2009 19:56:55 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>laut Prof müsste das korrekte Ergebnis 10 sein..<br />
obwohl ich 0 auch schon als Ergebnis gesehen hatte.<br />
Und er meinte noch, dass da die VTable verfälscht wird wie schon geschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1674867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1674867</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Mar 2009 19:56:55 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Fri, 06 Mar 2009 00:51:22 GMT]]></title><description><![CDATA[<p>Was für ein Schwachsinn ist das denn bitte? Was für ein Ekliger mix.. deinen Lehrer sollte man Steinigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675000</guid><dc:creator><![CDATA[Apfelsine]]></dc:creator><pubDate>Fri, 06 Mar 2009 00:51:22 GMT</pubDate></item><item><title><![CDATA[Reply to Rätsel on Fri, 06 Mar 2009 09:51:11 GMT]]></title><description><![CDATA[<p>Hmmm, bei mir fehlten da noch</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;cstring&gt;
</code></pre>
<p>Und dann kam folgender Output:</p>
<pre><code>$ ./main_1 
*** glibc detected *** ./main_1: munmap_chunk(): invalid pointer: 0x00007fff55148380 ***
======= Backtrace: =========                                                            
/lib/libc.so.6[0x7f0a4c4a8948]                                                          
./main_1(__gxx_personality_v0+0x3cc)[0x400cfc]                                          
./main_1(__gxx_personality_v0+0x214)[0x400b44]                                          
./main_1(__gxx_personality_v0+0x286)[0x400bb6]                                          
/lib/libc.so.6(__libc_start_main+0xe6)[0x7f0a4c452486]                                  
./main_1(__gxx_personality_v0+0x49)[0x400979]                                           
======= Memory map: ========                                                            
00400000-00402000 r-xp 00000000 08:12 8819281                            /home/user/Programmieren/C++/tests/c-plusplus-forum_de/235568/main_1
00601000-00602000 r--p 00001000 08:12 8819281                            /home/user/Programmieren/C++/tests/c-plusplus-forum_de/235568/main_1
00602000-00603000 rw-p 00002000 08:12 8819281                            /home/user/Programmieren/C++/tests/c-plusplus-forum_de/235568/main_1
00603000-00624000 rw-p 00603000 00:00 0                                  [heap]                                                               
7f0a4c434000-7f0a4c57f000 r-xp 00000000 08:11 344801                     /lib64/libc-2.8.so                                                   
7f0a4c57f000-7f0a4c77e000 ---p 0014b000 08:11 344801                     /lib64/libc-2.8.so                                                   
7f0a4c77e000-7f0a4c782000 r--p 0014a000 08:11 344801                     /lib64/libc-2.8.so                                                   
7f0a4c782000-7f0a4c783000 rw-p 0014e000 08:11 344801                     /lib64/libc-2.8.so                                                   
7f0a4c783000-7f0a4c788000 rw-p 7f0a4c783000 00:00 0                                                                                           
7f0a4c788000-7f0a4c79e000 r-xp 00000000 08:11 5342349                    /lib64/libgcc_s.so.1                                                 
7f0a4c79e000-7f0a4c99d000 ---p 00016000 08:11 5342349                    /lib64/libgcc_s.so.1                                                 
7f0a4c99d000-7f0a4c99e000 r--p 00015000 08:11 5342349                    /lib64/libgcc_s.so.1                                                 
7f0a4c99e000-7f0a4c99f000 rw-p 00016000 08:11 5342349                    /lib64/libgcc_s.so.1                                                 
7f0a4c99f000-7f0a4ca21000 r-xp 00000000 08:11 344524                     /lib64/libm-2.8.so                                                   
7f0a4ca21000-7f0a4cc20000 ---p 00082000 08:11 344524                     /lib64/libm-2.8.so                                                   
7f0a4cc20000-7f0a4cc21000 r--p 00081000 08:11 344524                     /lib64/libm-2.8.so                                                   
7f0a4cc21000-7f0a4cc22000 rw-p 00082000 08:11 344524                     /lib64/libm-2.8.so                                                   
7f0a4cc22000-7f0a4cd11000 r-xp 00000000 08:11 5440223                    /usr/lib64/gcc/x86_64-pc-linux-gnu/4.3.3/libstdc++.so.6.0.10         
7f0a4cd11000-7f0a4cf11000 ---p 000ef000 08:11 5440223                    /usr/lib64/gcc/x86_64-pc-linux-gnu/4.3.3/libstdc++.so.6.0.10         
7f0a4cf11000-7f0a4cf18000 r--p 000ef000 08:11 5440223                    /usr/lib64/gcc/x86_64-pc-linux-gnu/4.3.3/libstdc++.so.6.0.10
7f0a4cf18000-7f0a4cf1a000 rw-p 000f6000 08:11 5440223                    /usr/lib64/gcc/x86_64-pc-linux-gnu/4.3.3/libstdc++.so.6.0.10
7f0a4cf1a000-7f0a4cf2d000 rw-p 7f0a4cf1a000 00:00 0
7f0a4cf2d000-7f0a4cf49000 r-xp 00000000 08:11 344800                     /lib64/ld-2.8.so
7f0a4d10e000-7f0a4d111000 rw-p 7f0a4d10e000 00:00 0
7f0a4d147000-7f0a4d149000 rw-p 7f0a4d147000 00:00 0
7f0a4d149000-7f0a4d14a000 r--p 0001c000 08:11 344800                     /lib64/ld-2.8.so
7f0a4d14a000-7f0a4d14b000 rw-p 0001d000 08:11 344800                     /lib64/ld-2.8.so
7fff55135000-7fff5514b000 rw-p 7ffffffe9000 00:00 0                      [stack]
7fff55188000-7fff55189000 r-xp 7fff55188000 00:00 0                      [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Abgebrochen
</code></pre>
<p>GCC-4.3.3 auf nem 64-Bit Gentoo.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1675093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1675093</guid><dc:creator><![CDATA[test-tester]]></dc:creator><pubDate>Fri, 06 Mar 2009 09:51:11 GMT</pubDate></item></channel></rss>