<?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[2 Dim Array Call by Reference Problem]]></title><description><![CDATA[<p>Hi Leute</p>
<p>Ich versuche mich gerade an einer Sudoko Software (einfaches Konsolen Programm) um so ein bisschen in den C++ Syntax reinzukommen.</p>
<p>Ich habe dabei ein 2 Dim Array definiert mit meinen Felder: int sudoko[9][9];</p>
<p>So, nun habe ich eine Funktion generiert names:</p>
<p>void sudoko_generieren(int sudoko[][9]);</p>
<p>So die Funktion schaut so aus (Sinn der Funktion erstmal nicht so wichtig, geht ja um den Fehler):</p>
<pre><code class="language-cpp">void sudoko_generieren(int sudoko[][9])
{
	int anzahl_anfangszahlen = 10;

	int i,j;

	for(j=0; j&lt;2; j++)
	{

		for(i=0; i&lt;9; i++)
		{
			int zufalls_x = zufallszahl();
			int zufalls_y = zufallszahl();

			sudoko[zufalls_x][zufalls_y] = i;

			if (sudoko_zahlpruefen(sudoko, zufalls_x, zufalls_y, sudoko[zufalls_x][zufalls_y]) == false)
			{
				sudoko[zufalls_x][zufalls_y] = 0;
			}			
		}

	}

}
</code></pre>
<p>Das PRoblem muss an der Schleife: for(j=0; j&lt;2; j++) liegen. Wenn ich j&lt;1 setze kommt der Fehelr nicht auf. Zwar kompliert mein gnu c++ Compiler alles korrekt, aber wenn ich das Programm starte zeigt er manchmal den Fehler: Bus-Zugriffsfehler oder manchmal Speicher-Zugriffsfehler und manchmal eben kein fehler.</p>
<p>Woran kann das liegen? Hat C++ irgendwie ein Problem wenn ich in meinem Array öfters mal Werte an, bzw. überschreibe? Mir fällt absolut nichts ein und mein C++ buch habe ich leider verliehen.</p>
<p>Vielen Dank für jede Hifle!</p>
<p>Gruß Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165979/2-dim-array-call-by-reference-problem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 03:36:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165979.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Nov 2006 19:32:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2 Dim Array Call by Reference Problem on Fri, 24 Nov 2006 19:32:26 GMT]]></title><description><![CDATA[<p>Hi Leute</p>
<p>Ich versuche mich gerade an einer Sudoko Software (einfaches Konsolen Programm) um so ein bisschen in den C++ Syntax reinzukommen.</p>
<p>Ich habe dabei ein 2 Dim Array definiert mit meinen Felder: int sudoko[9][9];</p>
<p>So, nun habe ich eine Funktion generiert names:</p>
<p>void sudoko_generieren(int sudoko[][9]);</p>
<p>So die Funktion schaut so aus (Sinn der Funktion erstmal nicht so wichtig, geht ja um den Fehler):</p>
<pre><code class="language-cpp">void sudoko_generieren(int sudoko[][9])
{
	int anzahl_anfangszahlen = 10;

	int i,j;

	for(j=0; j&lt;2; j++)
	{

		for(i=0; i&lt;9; i++)
		{
			int zufalls_x = zufallszahl();
			int zufalls_y = zufallszahl();

			sudoko[zufalls_x][zufalls_y] = i;

			if (sudoko_zahlpruefen(sudoko, zufalls_x, zufalls_y, sudoko[zufalls_x][zufalls_y]) == false)
			{
				sudoko[zufalls_x][zufalls_y] = 0;
			}			
		}

	}

}
</code></pre>
<p>Das PRoblem muss an der Schleife: for(j=0; j&lt;2; j++) liegen. Wenn ich j&lt;1 setze kommt der Fehelr nicht auf. Zwar kompliert mein gnu c++ Compiler alles korrekt, aber wenn ich das Programm starte zeigt er manchmal den Fehler: Bus-Zugriffsfehler oder manchmal Speicher-Zugriffsfehler und manchmal eben kein fehler.</p>
<p>Woran kann das liegen? Hat C++ irgendwie ein Problem wenn ich in meinem Array öfters mal Werte an, bzw. überschreibe? Mir fällt absolut nichts ein und mein C++ buch habe ich leider verliehen.</p>
<p>Vielen Dank für jede Hifle!</p>
<p>Gruß Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180929</guid><dc:creator><![CDATA[ttobsen]]></dc:creator><pubDate>Fri, 24 Nov 2006 19:32:26 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dim Array Call by Reference Problem on Fri, 24 Nov 2006 19:44:13 GMT]]></title><description><![CDATA[<p>Übergeb mal das Array als Zeiger</p>
<pre><code>void sudoko_generieren(int(*)[9] sudoko)
          {
                  ...
          }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1180934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180934</guid><dc:creator><![CDATA[freak11]]></dc:creator><pubDate>Fri, 24 Nov 2006 19:44:13 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dim Array Call by Reference Problem on Fri, 24 Nov 2006 20:04:16 GMT]]></title><description><![CDATA[<p>Also das Funktioniert mal garnicht. Ich erhalte viele Fehelrmeldungen:</p>
<p>includes/sudoko_funktionen.h:4: error: variable or field ‘sudoko_generieren’ declared void<br />
includes/sudoko_funktionen.h:4: error: expected primary-expression before ‘int’<br />
includes/sudoko_funktionen.h:5: error: variable or field ‘sudoko_initialisieren’ declared void<br />
includes/sudoko_funktionen.h:5: error: expected primary-expression before ‘int’<br />
includes/sudoko_funktionen.h:51: error: variable or field ‘sudoko_generieren’ declared void<br />
includes/sudoko_funktionen.h:51: error: redefinition of ‘int sudoko_generieren’<br />
includes/sudoko_funktionen.h:4: error: ‘int sudoko_generieren’ previously defined here<br />
includes/sudoko_funktionen.h:51: error: expected primary-expression before ‘int’<br />
includes/sudoko_funktionen.h:78: error: variable or field ‘sudoko_initialisieren’ declared void<br />
includes/sudoko_funktionen.h:78: error: redefinition of ‘int sudoko_initialisieren’<br />
includes/sudoko_funktionen.h:5: error: ‘int sudoko_initialisieren’ previously defined here<br />
includes/sudoko_funktionen.h:78: error: expected primary-expression before ‘int’<br />
test.cpp: In function ‘int main()’:<br />
test.cpp:13: error: ‘sudoko_initialisieren’ cannot be used as a function<br />
test.cpp:27: error: ‘sudoko_generieren’ cannot be used as a function</p>
<p>Quellcode schaut dann grad so aus:</p>
<pre><code class="language-cpp">void sudoko_generieren(int(*)[9] sudoko)
{
	int anzahl_anfangszahlen = 10;

	int i,j;

	for(j=0; j&lt;2; j++)
	{

		for(i=0; i&lt;9; i++)
		{
			int zufalls_x = zufallszahl();
			int zufalls_y = zufallszahl();

			sudoko[zufalls_x][zufalls_y] = i;

			if (sudoko_zahlpruefen(sudoko, zufalls_x, zufalls_y, sudoko[zufalls_x][zufalls_y]) == false)
			{
				sudoko[zufalls_x][zufalls_y] = 0;
			}			
		}

	}

}
</code></pre>
<p>Am Anfang meiner Headerdatei steht:</p>
<pre><code class="language-cpp">void sudoko_ausgabe(int sudoko[][9]);
int sudoku_zahlauslesen(int sudoko[][9], int x, int y);
void sudoko_generieren(int(*)[9] sudoko);
void sudoko_initialisieren(int(*)[9] sudoko);
bool sudoko_zahlpruefen(int sudoko[][9], int x, int y, int zahl);
</code></pre>
<p>Da muss noch uirgendwas schief sein.</p>
<p>Gruß Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180937</guid><dc:creator><![CDATA[ttobsen]]></dc:creator><pubDate>Fri, 24 Nov 2006 20:04:16 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dim Array Call by Reference Problem on Fri, 24 Nov 2006 20:19:17 GMT]]></title><description><![CDATA[<p>probier mal das</p>
<pre><code>void sudoko_generieren(int(*sudoko)[9]) 
    {
      ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1180946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180946</guid><dc:creator><![CDATA[freak11]]></dc:creator><pubDate>Fri, 24 Nov 2006 20:19:17 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dim Array Call by Reference Problem on Fri, 24 Nov 2006 20:24:49 GMT]]></title><description><![CDATA[<p>ttobsen schrieb:</p>
<blockquote>
<p>Bus-Zugriffsfehler</p>
</blockquote>
<p>was iss'n das für 'ne maschine bzw. betriebssystem?</p>
<p>btw: die funktion 'zufallszahl()' darf nur werte im bereich 0...8 erzeugen.<br />
das musst du sicherstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180949</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Fri, 24 Nov 2006 20:24:49 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dim Array Call by Reference Problem on Fri, 24 Nov 2006 20:34:57 GMT]]></title><description><![CDATA[<p>Die letzte Schreibweise war die Richtige,<br />
hab nen kleinen Test gemacht.</p>
<pre><code>void func(int(*sudoko)[9])
{                    
       sudoko[0][2] = 5;
}

int main() 
{ 
    int sudoko[9][9] = {0,};

        func(sudoko);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1180951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180951</guid><dc:creator><![CDATA[freak11]]></dc:creator><pubDate>Fri, 24 Nov 2006 20:34:57 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dim Array Call by Reference Problem on Sat, 25 Nov 2006 11:21:03 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>ttobsen schrieb:</p>
<blockquote>
<p>Bus-Zugriffsfehler</p>
</blockquote>
<p>was iss'n das für 'ne maschine bzw. betriebssystem?</p>
<p>btw: die funktion 'zufallszahl()' darf nur werte im bereich 0...8 erzeugen.<br />
das musst du sicherstellen.</p>
</blockquote>
<p>Hi</p>
<p>daran lag der Zugriffsfehler! Danke für den Tipp.</p>
<p>Ist Suse Linux 10.1.</p>
<p>freak11 schrieb:</p>
<blockquote>
<p>Die letzte Schreibweise war die Richtige,<br />
hab nen kleinen Test gemacht.</p>
<pre><code>void func(int(*sudoko)[9])
{                    
       sudoko[0][2] = 5;
}

int main() 
{ 
    int sudoko[9][9] = {0,};
  
        func(sudoko);
}
</code></pre>
</blockquote>
<p>Und mit dieser Schreibweise funktioniert die Übergabe! Vielen Dank an euch beide.</p>
<p>Gruß Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181144</guid><dc:creator><![CDATA[ttobsen]]></dc:creator><pubDate>Sat, 25 Nov 2006 11:21:03 GMT</pubDate></item></channel></rss>