<?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[Run-Time Check Failure #2 Stack around the variable poker_deck]]></title><description><![CDATA[<p>der folgende Code stürzt immer ab aufgrunde eines &quot;Run-Time Check Failure #2 Stack around the variable poker_deck&quot; was corruptet&quot;<br />
Mein Compiler is</p>
<p>Dies sind die beiden interressanten Klassen:</p>
<pre><code class="language-cpp">class card
{
      public:
      int priority; 
      int color;    

      public:
      card();       
      void CardChange(int,int); 
      void getCard();  
};

class deck
{
public:
	deck();
	void erstellen(deck&amp;);
        void unsort_deck();
	card default_deck[32];
	void say_deck(deck&amp;);
	void say_mixed_deck(/*deck&amp;,int&amp;*/);
	card mixed_deck[32];
	int cards_left; //startet per constructor mit der Zahl 52
};
</code></pre>
<p>Dies ist die funktion in der der Fehler auftritt und die funktion die ich davor ausgeführt habe die allerdings fehlerfrei funktioniert:</p>
<pre><code class="language-cpp">void deck::unsort_deck() //letzte ausgeführte Funktion
{
     int choicer = 0;
     int kartenuebrig = 51;
     int modulouebrig = 52;
     srand (time(NULL));
     for(int i = 0;;i++)
	 {
		 choicer = rand()%modulouebrig;
		 mixed_deck[i] = default_deck[choicer];
		 default_deck[choicer] = default_deck[kartenuebrig];
		 kartenuebrig--;
		 modulouebrig--;
		 if(modulouebrig == 0) break;
		 mixed_deck[i].getCard(); /*zum kontrollieren ob alles fehlerfrei funktioniert was auch der Fall war, anscheinend steht der Error in keinem Zusammenhang mit dieser Methode */
         };
  cout &lt;&lt; &quot;Deck successfull mixed&quot; &lt;&lt; endl;
};

void deck::say_mixed_deck()   //fehlerhafte Methode
{
	for(int i = 0; i &lt; cards_left; i++)
	{
		mixed_deck[i].getCard();
	};
	system(&quot;PAUSE&quot;);
};

void card::getCard()  //diese Methode wird von say_mixed_deck() benutzt
{
	string scolor(&quot;default&quot;);
	string spriority(&quot;default&quot;);
	cout &lt;&lt; priority &lt;&lt; &quot; &quot; &lt;&lt; color &lt;&lt; endl;
	switch(priority)
	{
		case 0: cout &lt;&lt; &quot;ERROR NO priority_value&quot; &lt;&lt; endl;
			    break;
		case 1: scolor = &quot;two&quot;;
			    break;
		case 2: scolor = &quot;three&quot;;
			    break;
		case 3: scolor = &quot;four&quot;;
			    break;
		case 4: scolor = &quot;five&quot;;
			    break;
		case 5: scolor = &quot;six&quot;;
			    break;
		case 6: scolor = &quot;seven&quot;;
			    break;
		case 7: scolor = &quot;eight&quot;;
			    break;
		case 8: scolor = &quot;nine&quot;;
			    break;
		case 9: scolor = &quot;ten&quot;;
			    break;
		case 10: scolor = &quot;jack&quot;;
			    break;
		case 11: scolor = &quot;quenn&quot;;
			    break;
		case 12: scolor = &quot;king&quot;;
			    break;
		case 13: scolor = &quot;ace&quot;;
			    break;
	};
	switch(color)
	{
		case 0: cout &lt;&lt; &quot;ERROR NO color_value&quot; &lt;&lt; endl;
			    break;
		case 1: spriority = &quot;diamond&quot;;
			    break;
		case 2: spriority = &quot;heart&quot;;
			    break;
		case 3: spriority = &quot;spade&quot;;
			    break;
		case 4: spriority = &quot;club&quot;;
			    break;
	};
	cout &lt;&lt; spriority + &quot; &quot; + scolor &lt;&lt; endl;
};
</code></pre>
<p>Das ist die Main:</p>
<pre><code class="language-cpp">int main()
{
	deck poker_deck;
	poker_deck.erstellen(poker_deck);
	poker_deck.unsort_deck();
	poker_deck.say_mixed_deck();
	system(&quot;PAUSE&quot;);
	return 0;
};
</code></pre>
<p>Ich hoffe das ist all der Code den ihr brauhct um mir zu helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/232685/run-time-check-failure-2-stack-around-the-variable-poker_deck</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 07:51:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/232685.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Jan 2009 19:03:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Run-Time Check Failure #2 Stack around the variable poker_deck on Sun, 25 Jan 2009 19:04:29 GMT]]></title><description><![CDATA[<p>der folgende Code stürzt immer ab aufgrunde eines &quot;Run-Time Check Failure #2 Stack around the variable poker_deck&quot; was corruptet&quot;<br />
Mein Compiler is</p>
<p>Dies sind die beiden interressanten Klassen:</p>
<pre><code class="language-cpp">class card
{
      public:
      int priority; 
      int color;    

      public:
      card();       
      void CardChange(int,int); 
      void getCard();  
};

class deck
{
public:
	deck();
	void erstellen(deck&amp;);
        void unsort_deck();
	card default_deck[32];
	void say_deck(deck&amp;);
	void say_mixed_deck(/*deck&amp;,int&amp;*/);
	card mixed_deck[32];
	int cards_left; //startet per constructor mit der Zahl 52
};
</code></pre>
<p>Dies ist die funktion in der der Fehler auftritt und die funktion die ich davor ausgeführt habe die allerdings fehlerfrei funktioniert:</p>
<pre><code class="language-cpp">void deck::unsort_deck() //letzte ausgeführte Funktion
{
     int choicer = 0;
     int kartenuebrig = 51;
     int modulouebrig = 52;
     srand (time(NULL));
     for(int i = 0;;i++)
	 {
		 choicer = rand()%modulouebrig;
		 mixed_deck[i] = default_deck[choicer];
		 default_deck[choicer] = default_deck[kartenuebrig];
		 kartenuebrig--;
		 modulouebrig--;
		 if(modulouebrig == 0) break;
		 mixed_deck[i].getCard(); /*zum kontrollieren ob alles fehlerfrei funktioniert was auch der Fall war, anscheinend steht der Error in keinem Zusammenhang mit dieser Methode */
         };
  cout &lt;&lt; &quot;Deck successfull mixed&quot; &lt;&lt; endl;
};

void deck::say_mixed_deck()   //fehlerhafte Methode
{
	for(int i = 0; i &lt; cards_left; i++)
	{
		mixed_deck[i].getCard();
	};
	system(&quot;PAUSE&quot;);
};

void card::getCard()  //diese Methode wird von say_mixed_deck() benutzt
{
	string scolor(&quot;default&quot;);
	string spriority(&quot;default&quot;);
	cout &lt;&lt; priority &lt;&lt; &quot; &quot; &lt;&lt; color &lt;&lt; endl;
	switch(priority)
	{
		case 0: cout &lt;&lt; &quot;ERROR NO priority_value&quot; &lt;&lt; endl;
			    break;
		case 1: scolor = &quot;two&quot;;
			    break;
		case 2: scolor = &quot;three&quot;;
			    break;
		case 3: scolor = &quot;four&quot;;
			    break;
		case 4: scolor = &quot;five&quot;;
			    break;
		case 5: scolor = &quot;six&quot;;
			    break;
		case 6: scolor = &quot;seven&quot;;
			    break;
		case 7: scolor = &quot;eight&quot;;
			    break;
		case 8: scolor = &quot;nine&quot;;
			    break;
		case 9: scolor = &quot;ten&quot;;
			    break;
		case 10: scolor = &quot;jack&quot;;
			    break;
		case 11: scolor = &quot;quenn&quot;;
			    break;
		case 12: scolor = &quot;king&quot;;
			    break;
		case 13: scolor = &quot;ace&quot;;
			    break;
	};
	switch(color)
	{
		case 0: cout &lt;&lt; &quot;ERROR NO color_value&quot; &lt;&lt; endl;
			    break;
		case 1: spriority = &quot;diamond&quot;;
			    break;
		case 2: spriority = &quot;heart&quot;;
			    break;
		case 3: spriority = &quot;spade&quot;;
			    break;
		case 4: spriority = &quot;club&quot;;
			    break;
	};
	cout &lt;&lt; spriority + &quot; &quot; + scolor &lt;&lt; endl;
};
</code></pre>
<p>Das ist die Main:</p>
<pre><code class="language-cpp">int main()
{
	deck poker_deck;
	poker_deck.erstellen(poker_deck);
	poker_deck.unsort_deck();
	poker_deck.say_mixed_deck();
	system(&quot;PAUSE&quot;);
	return 0;
};
</code></pre>
<p>Ich hoffe das ist all der Code den ihr brauhct um mir zu helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1652218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1652218</guid><dc:creator><![CDATA[Jud4s]]></dc:creator><pubDate>Sun, 25 Jan 2009 19:04:29 GMT</pubDate></item><item><title><![CDATA[Reply to Run-Time Check Failure #2 Stack around the variable poker_deck on Sun, 25 Jan 2009 19:25:49 GMT]]></title><description><![CDATA[<p>Boundchecks sind eine feine Sache und wenn du dafür eine exception werfen würdest, wüsstest du, wo der Fehler ist.</p>
<p>Zuerst geht man da einmal mit dem Debugger schauen, was da so für Werte kommen.. und dann wärst du auf das gestossen:</p>
<pre><code class="language-cpp">int choicer = 0;
     int kartenuebrig = 51;
     int modulouebrig = 52;
     srand (time(NULL));
     for(int i = 0;;i++)
     {
         choicer = rand()%modulouebrig;
         mixed_deck[i] = default_deck[choicer];
</code></pre>
<p>default_deck hat eine Grösse von 32 (also von 0 bis 31 ). choicer hat aber ein Wertebereich von 0 bis 51..<br />
Ich habe mir den Rest des Codes nicht gross angesehen, aber ich vermute mal, dass es da noch mehr solche Fehler gibt. Also schön schauen!</p>
<p>btw:<br />
srand solltest du lediglich einmal in deinem Programm aufrufen und das in der main..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1652230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1652230</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 25 Jan 2009 19:25:49 GMT</pubDate></item><item><title><![CDATA[Reply to Run-Time Check Failure #2 Stack around the variable poker_deck on Sun, 25 Jan 2009 19:37:48 GMT]]></title><description><![CDATA[<p>nope, das ist der einzige Fehler. Ich habe nämlich von einem 32 Karten auf ein 52 Kartendeck umgestellt und dabei vergessen den Klassenarray für die Karten auch zu vergrößern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1652239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1652239</guid><dc:creator><![CDATA[Jud4s]]></dc:creator><pubDate>Sun, 25 Jan 2009 19:37:48 GMT</pubDate></item></channel></rss>