<?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[Probleme mit Containerklasse stack]]></title><description><![CDATA[<p>Tag alle zusammen!</p>
<p>ich hab ein kleines Problem:</p>
<p>Ich hab eine Klasse namens Sudoku erstellt und muss ein paar variablen auf dem stack zwischen speichern! Nun hab ich mich darüber informiert und alles so gemacht wie ich es gefunden hab! Der Teil der Programmes wird auch ohne Fehler kompiliert nur wenn ich es starte in Borland kommt eine Zugriffsverletzung im Adressberreich und der Debugger bricht ab (siehe fett markierter bereich)! Hat einer eine Idee?</p>
<p><strong>Sudoku.cpp</strong></p>
<pre><code>#include&lt;conio&gt;
#include&lt;iostream&gt;
#include&lt;stack&gt;

#include &quot;Sudoku.h&quot;

using namespace std;

Sudoku::Sudoku(int feld[9][9])
{
 for(int z=0; z&lt;9; z++)
 {
  for(int s=0; s&lt;9; s++)
  {
   this-&gt;feld[z][s] = feld[z][s];
  }
 }
}

void Sudoku::ausgebenFeld()
{
 for(int z=0; z&lt;9; z++)
 {
  for(int s=0; s&lt;9; s++)
  {
   cout &lt;&lt; feld[z][s];
  }
  cout &lt;&lt; endl;
 }
}

bool Sudoku::testen(int zahl, int pz, int ps)
{
 for(int z=0; z&lt;9; z++)
 {
  if(feld[z][ps] == zahl)
  {
   return false;
  }
 }

 for(int s=0; s&lt;9; s++)
 {
  if(feld[pz][s] == zahl)
  {
   return false;
  }
 }

 int x = (pz / 3);
 int y = (ps / 3);

 for(int z=0+3*x; z&lt;3*x+3; z++)
 {
  for(int s=0+3*y; s&lt;3*y+3; s++)
  {
   if(feld[z][s] == zahl)
   {
    return false;
   }
  }
 }

 return true;
}

void Sudoku::loesen()
{
 int a = 0;
 while(setzenZahlen(a) == false)
 {
  [b]int z = reihenfolgeZeilen.top();[/b]  //
  [b]int s = reihenfolgeSpalten.top();[/b] // :warning:  Hier bricht er immer ab!!!!!!!

  int aktuelleZahl = feld[z][s];
  feld[z][s] = 0;

  reihenfolgeZeilen.pop();
  reihenfolgeSpalten.pop();

  setzenZahlen((aktuelleZahl)+1);
 }
}

bool Sudoku::setzenZahlen(int zahl)
{
 for(int z=0; z&lt;9; z++)
 {
  for(int s=0; s&lt;9; s++)
  {
   if(feld[z][s] == 0)
   {
    for(int i=1; i&lt;=9; i++)
    {
     if(testen(i,z,s) == true)
     {
      feld[z][s] = i;
      reihenfolgeZeilen.push(z);
      reihenfolgeSpalten.push(s);
     }
     else
     {
      return false;
     }
    }
   }
  }
 }
 return true;
}
</code></pre>
<p><strong>Sudoku.h</strong></p>
<pre><code>#ifndef SudokuH
#define SudokuH
#include&lt;stack&gt;

using namespace std;

class Sudoku
{
 private:
         int feld[9][9];
         stack&lt;int&gt; reihenfolgeZeilen;
         stack&lt;int&gt; reihenfolgeSpalten;

 public:
         Sudoku(int feld[9][9]);
         void ausgebenFeld();
         bool testen(int zahl, int z, int s);
         void loesen();
         bool setzenZahlen(int);
};
#endif
</code></pre>
<p><strong>main.cpp</strong></p>
<pre><code>#include&lt;conio&gt;
#include&lt;iostream&gt;
#include &quot;Sudoku.h&quot;

using namespace std;

int main(int argc, char* argv[])
{
 int sudoku2[9][9]  =  {0,0,6,2,0,1,0,0,0,
                        8,0,0,0,0,0,0,7,1,
                        0,0,1,7,0,0,0,3,2,
                        0,0,7,0,3,0,0,4,0,
                        0,5,0,0,0,0,0,8,0,
                        0,8,0,0,4,0,7,0,0,
                        4,6,0,0,0,5,8,0,0,
                        1,7,0,0,0,0,0,0,4,
                        0,0,0,4,0,6,5,0,0};
 Sudoku s(sudoku2);
 s.ausgebenFeld();
 //s.setzenZahlen(1);
 s.loesen();
 cout &lt;&lt; endl;
 s.ausgebenFeld();
 getch();
 return 0;
}
</code></pre>
<p>Thx</p>
<p>Yast</p>
<p>P.S: Das programm ist noch nicht funktions tüchtig <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="😉"
    /> es geht mir gerade nur um den fehler</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147050/probleme-mit-containerklasse-stack</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Apr 2026 11:44:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147050.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 May 2006 11:40:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Containerklasse stack on Sat, 13 May 2006 11:40:30 GMT]]></title><description><![CDATA[<p>Tag alle zusammen!</p>
<p>ich hab ein kleines Problem:</p>
<p>Ich hab eine Klasse namens Sudoku erstellt und muss ein paar variablen auf dem stack zwischen speichern! Nun hab ich mich darüber informiert und alles so gemacht wie ich es gefunden hab! Der Teil der Programmes wird auch ohne Fehler kompiliert nur wenn ich es starte in Borland kommt eine Zugriffsverletzung im Adressberreich und der Debugger bricht ab (siehe fett markierter bereich)! Hat einer eine Idee?</p>
<p><strong>Sudoku.cpp</strong></p>
<pre><code>#include&lt;conio&gt;
#include&lt;iostream&gt;
#include&lt;stack&gt;

#include &quot;Sudoku.h&quot;

using namespace std;

Sudoku::Sudoku(int feld[9][9])
{
 for(int z=0; z&lt;9; z++)
 {
  for(int s=0; s&lt;9; s++)
  {
   this-&gt;feld[z][s] = feld[z][s];
  }
 }
}

void Sudoku::ausgebenFeld()
{
 for(int z=0; z&lt;9; z++)
 {
  for(int s=0; s&lt;9; s++)
  {
   cout &lt;&lt; feld[z][s];
  }
  cout &lt;&lt; endl;
 }
}

bool Sudoku::testen(int zahl, int pz, int ps)
{
 for(int z=0; z&lt;9; z++)
 {
  if(feld[z][ps] == zahl)
  {
   return false;
  }
 }

 for(int s=0; s&lt;9; s++)
 {
  if(feld[pz][s] == zahl)
  {
   return false;
  }
 }

 int x = (pz / 3);
 int y = (ps / 3);

 for(int z=0+3*x; z&lt;3*x+3; z++)
 {
  for(int s=0+3*y; s&lt;3*y+3; s++)
  {
   if(feld[z][s] == zahl)
   {
    return false;
   }
  }
 }

 return true;
}

void Sudoku::loesen()
{
 int a = 0;
 while(setzenZahlen(a) == false)
 {
  [b]int z = reihenfolgeZeilen.top();[/b]  //
  [b]int s = reihenfolgeSpalten.top();[/b] // :warning:  Hier bricht er immer ab!!!!!!!

  int aktuelleZahl = feld[z][s];
  feld[z][s] = 0;

  reihenfolgeZeilen.pop();
  reihenfolgeSpalten.pop();

  setzenZahlen((aktuelleZahl)+1);
 }
}

bool Sudoku::setzenZahlen(int zahl)
{
 for(int z=0; z&lt;9; z++)
 {
  for(int s=0; s&lt;9; s++)
  {
   if(feld[z][s] == 0)
   {
    for(int i=1; i&lt;=9; i++)
    {
     if(testen(i,z,s) == true)
     {
      feld[z][s] = i;
      reihenfolgeZeilen.push(z);
      reihenfolgeSpalten.push(s);
     }
     else
     {
      return false;
     }
    }
   }
  }
 }
 return true;
}
</code></pre>
<p><strong>Sudoku.h</strong></p>
<pre><code>#ifndef SudokuH
#define SudokuH
#include&lt;stack&gt;

using namespace std;

class Sudoku
{
 private:
         int feld[9][9];
         stack&lt;int&gt; reihenfolgeZeilen;
         stack&lt;int&gt; reihenfolgeSpalten;

 public:
         Sudoku(int feld[9][9]);
         void ausgebenFeld();
         bool testen(int zahl, int z, int s);
         void loesen();
         bool setzenZahlen(int);
};
#endif
</code></pre>
<p><strong>main.cpp</strong></p>
<pre><code>#include&lt;conio&gt;
#include&lt;iostream&gt;
#include &quot;Sudoku.h&quot;

using namespace std;

int main(int argc, char* argv[])
{
 int sudoku2[9][9]  =  {0,0,6,2,0,1,0,0,0,
                        8,0,0,0,0,0,0,7,1,
                        0,0,1,7,0,0,0,3,2,
                        0,0,7,0,3,0,0,4,0,
                        0,5,0,0,0,0,0,8,0,
                        0,8,0,0,4,0,7,0,0,
                        4,6,0,0,0,5,8,0,0,
                        1,7,0,0,0,0,0,0,4,
                        0,0,0,4,0,6,5,0,0};
 Sudoku s(sudoku2);
 s.ausgebenFeld();
 //s.setzenZahlen(1);
 s.loesen();
 cout &lt;&lt; endl;
 s.ausgebenFeld();
 getch();
 return 0;
}
</code></pre>
<p>Thx</p>
<p>Yast</p>
<p>P.S: Das programm ist noch nicht funktions tüchtig <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="😉"
    /> es geht mir gerade nur um den fehler</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1056995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056995</guid><dc:creator><![CDATA[Yast]]></dc:creator><pubDate>Sat, 13 May 2006 11:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Containerklasse stack on Sat, 13 May 2006 13:27:44 GMT]]></title><description><![CDATA[<p>Warum auch immer wurde der Beitrag einfach gelöscht deshalb mach ich diesen wieder auf.</p>
<p>Und wie bereits gesagt du solltest bevor du mit top() auf den stack zugreifst testen ob da wirklich daten drin sind.</p>
<p>BR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1057052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1057052</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sat, 13 May 2006 13:27:44 GMT</pubDate></item></channel></rss>