<?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[Release Build - seltsames Problem [Gelöst]]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein sehr seltsames Problem und kann mir leider überhaupt nicht erklären wie es dazu kommt.</p>
<p>Folgender Code soll (in einem größeren Sudoku-Programm) Zufallszahlen zwischen 0 und 10 (je ausgeschlossen) eine Zufallszahl außer der im Vektor &quot;ausnahmen&quot; angegebenen erzeugen:</p>
<pre><code class="language-cpp">vector&lt;int&gt; verbleibende_zufallszahlen2;

int zufallszahl_außer(vector&lt;int&gt; ausnahmen)
{
	for(int a=1;a&lt;10;a++)//alle möglichen zahlen außer ausnahmen einfügen
	{
		//alle außer ausnahmen einfügen:     --&gt;STELLE 1&lt;--

		for(int b=0;b&lt;ausnahmen.size();b++)
		{
			if(ausnahmen[b]==a)
			{
				continue;
			}
		}

		verbleibende_zufallszahlen2.push_back(a);//--&gt;STELLE 2&lt;--
	}

	//zufallsindex
	int index=rand()%verbleibende_zufallszahlen2.size();
	//zufallszahl
	int zufallszahl=verbleibende_zufallszahlen2[index];
	verbleibende_zufallszahlen2.erase(verbleibende_zufallszahlen2.begin()+index);//aus verbleibenden entfernen

	return zufallszahl;

}
</code></pre>
<p>Der Code compiliert sowohl im Debug- als auch im Release-Mode von Visual Studio 2010 Express, Win 7 32 bit fehlerfrei.<br />
Im Debug-Modus liefert er auch genau das gewünschte Ergebnis und alles läuft hervorragend <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>aber sobald ich den release-build laufen lasse liefert mir der Code irgendwelche Zahlen zwischen 0 und 10 ohne die Ausnahmen zu berücksichtigen <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>
<p>wenn ich mit dem Debugger schrittweise durchgehe spring er von STELLE 1 (siehe code) direkt zu STELLE 2, als ob dazwischen gar nichts stünde <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> So ist zwar zu erklären dass alle Zahlen im VEktor der verbleibenden landen, aber das sollte ja genau nicht passieren!!!</p>
<p>Die innere for-Schleiufe wird einfach ignoriert, wie wenn sie nicht existieren würde <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>
<p>Weiß vielleicht jemand woran das liegt und was ich ändern muss damit es auch im Release funktioniert?</p>
<p>danke schonmal,<br />
andi01.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285068/release-build-seltsames-problem-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 16:08:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285068.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Apr 2011 14:50:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Release Build - seltsames Problem [Gelöst] on Wed, 13 Apr 2011 18:09:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein sehr seltsames Problem und kann mir leider überhaupt nicht erklären wie es dazu kommt.</p>
<p>Folgender Code soll (in einem größeren Sudoku-Programm) Zufallszahlen zwischen 0 und 10 (je ausgeschlossen) eine Zufallszahl außer der im Vektor &quot;ausnahmen&quot; angegebenen erzeugen:</p>
<pre><code class="language-cpp">vector&lt;int&gt; verbleibende_zufallszahlen2;

int zufallszahl_außer(vector&lt;int&gt; ausnahmen)
{
	for(int a=1;a&lt;10;a++)//alle möglichen zahlen außer ausnahmen einfügen
	{
		//alle außer ausnahmen einfügen:     --&gt;STELLE 1&lt;--

		for(int b=0;b&lt;ausnahmen.size();b++)
		{
			if(ausnahmen[b]==a)
			{
				continue;
			}
		}

		verbleibende_zufallszahlen2.push_back(a);//--&gt;STELLE 2&lt;--
	}

	//zufallsindex
	int index=rand()%verbleibende_zufallszahlen2.size();
	//zufallszahl
	int zufallszahl=verbleibende_zufallszahlen2[index];
	verbleibende_zufallszahlen2.erase(verbleibende_zufallszahlen2.begin()+index);//aus verbleibenden entfernen

	return zufallszahl;

}
</code></pre>
<p>Der Code compiliert sowohl im Debug- als auch im Release-Mode von Visual Studio 2010 Express, Win 7 32 bit fehlerfrei.<br />
Im Debug-Modus liefert er auch genau das gewünschte Ergebnis und alles läuft hervorragend <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>aber sobald ich den release-build laufen lasse liefert mir der Code irgendwelche Zahlen zwischen 0 und 10 ohne die Ausnahmen zu berücksichtigen <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>
<p>wenn ich mit dem Debugger schrittweise durchgehe spring er von STELLE 1 (siehe code) direkt zu STELLE 2, als ob dazwischen gar nichts stünde <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> So ist zwar zu erklären dass alle Zahlen im VEktor der verbleibenden landen, aber das sollte ja genau nicht passieren!!!</p>
<p>Die innere for-Schleiufe wird einfach ignoriert, wie wenn sie nicht existieren würde <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>
<p>Weiß vielleicht jemand woran das liegt und was ich ändern muss damit es auch im Release funktioniert?</p>
<p>danke schonmal,<br />
andi01.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048766</guid><dc:creator><![CDATA[andi01]]></dc:creator><pubDate>Wed, 13 Apr 2011 18:09:28 GMT</pubDate></item><item><title><![CDATA[Reply to Release Build - seltsames Problem [Gelöst] on Wed, 13 Apr 2011 15:51:48 GMT]]></title><description><![CDATA[<p>Naja, die Schleife</p>
<pre><code class="language-cpp">for(int b=0;b&lt;ausnahmen.size();b++)
        {
            if(ausnahmen[b]==a)
            {
                continue;
            }
        }
</code></pre>
<p>macht netto nichts, das ist schon richtig so. Das sollte aber auch im Debug-Modus nichts tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048815</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Wed, 13 Apr 2011 15:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to Release Build - seltsames Problem [Gelöst] on Wed, 13 Apr 2011 16:57:41 GMT]]></title><description><![CDATA[<p>erstmal danke für die Antwort...</p>
<p>Die Schleife erfüllt den Zweck, dass ein Objekt im Vektor ausnahmen nich in verbleibende-objekte2 eingefügt wird... sie ist also nötig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p>und wie kann ich das Problem jetzt beheben wo ich weiß dass es daran liegt? einfach eine dummy-funktion darin ausführen dass sie nicht übersprungen wird?</p>
<p>btw: im debug-modus wird die schleife brav ausgeführt, nu im release wird sie einfach übersprungen...</p>
<p>lg,<br />
andi01.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048869</guid><dc:creator><![CDATA[andi01]]></dc:creator><pubDate>Wed, 13 Apr 2011 16:57:41 GMT</pubDate></item><item><title><![CDATA[Reply to Release Build - seltsames Problem [Gelöst] on Wed, 13 Apr 2011 17:05:34 GMT]]></title><description><![CDATA[<p>andi01 schrieb:</p>
<blockquote>
<p>erstmal danke für die Antwort...</p>
<p>Die Schleife erfüllt den Zweck, dass ein Objekt im Vektor ausnahmen nich in verbleibende-objekte2 eingefügt wird... sie ist also nötig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
</blockquote>
<p>Dir ist hoffentlich klar, daß das continue sich nur auf die innerste Schleife (for(b)) bezieht - und da es das einzige in dieser Schleife ist, ist es praktisch nutzlos. Warum suchst du eigentlich von Hand in dem vector&lt;&gt;, wenn es dafür fertige Funktionen gibt?</p>
<pre><code class="language-cpp">if(find(ausnahmen.begin(),ausnahmen.end(),a)!=ausnahmen.end())
  continue;
</code></pre>
<p>PS: Warum diese Schleife im Debug-Modus das macht, was du vorhast, ist mir allerdings auch ein Rätsel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048877</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 13 Apr 2011 17:05:34 GMT</pubDate></item><item><title><![CDATA[Reply to Release Build - seltsames Problem [Gelöst] on Wed, 13 Apr 2011 17:25:31 GMT]]></title><description><![CDATA[<p>Ich könnte mir vorstellen, dass MSVC im Release-Modus die gesamte Schleife wegoptimiert, während sie im Debug-Modus drin bleibt. Allerdings wird sie auch dort nicht den gewünschten Effekt haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048894</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Wed, 13 Apr 2011 17:25:31 GMT</pubDate></item><item><title><![CDATA[Reply to Release Build - seltsames Problem [Gelöst] on Wed, 13 Apr 2011 17:49:50 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Dir ist hoffentlich klar, daß das continue sich nur auf die innerste Schleife (for(b)) bezieht</p>
</blockquote>
<p>upps <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="🙄"
    /> hätte mir auch auffallen können <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>CStoll schrieb:</p>
<blockquote>
<p>Warum suchst du eigentlich von Hand in dem vector&lt;&gt;, wenn es dafür fertige Funktionen gibt?</p>
</blockquote>
<p>die Funktion hatte ich jetzt noch gar nicht gekannt... danke für den Tipp <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>jetzt funktioniert alles bestens... für den Fall dass jemand ein ähnliches Problem hat hier mal der Code:</p>
<pre><code class="language-cpp">vector&lt;int&gt; verbleibende_zufallszahlen2;

int zufallszahl_außer(vector&lt;int&gt; ausnahmen)// GEHT NICHT IM RELEASE!!!!!!!
{
	for(int a=1;a&lt;10;a++)//alle möglichen zahlen außer ausnahmen einfügen
	{
		//alle außer ausnahmen einfügen:     --&gt;STELLE 1&lt;--

		if(find(ausnahmen.begin(), ausnahmen.end(), a)!=ausnahmen.end())
		{
			continue;
		}

		verbleibende_zufallszahlen2.push_back(a);//--&gt;STELLE 2&lt;--
	}

	//zufallsindex
	int index=rand()%verbleibende_zufallszahlen2.size();
	//zufallszahl
	int zufallszahl=verbleibende_zufallszahlen2[index];
	verbleibende_zufallszahlen2.erase(verbleibende_zufallszahlen2.begin()+index);//aus verbleibenden entfernen

	return zufallszahl;

}
</code></pre>
<p>danke an alle für die Hilfe <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>lg,<br />
andi01.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2048916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2048916</guid><dc:creator><![CDATA[andi01]]></dc:creator><pubDate>Wed, 13 Apr 2011 17:49:50 GMT</pubDate></item></channel></rss>