<?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[Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bräuchte mal dringend Hilfe. Ich schreibe ein Programm zur Addition und Multiplikation von zwei Matrizen. Das hatte auch funktioniert. Nun wollte ich die einzelnen Schritte noch in Funktionen aufteilen. Dabei kam das Problem auf wie ich das Array bzw. die Adresse des ersten Elements an das Hauptprogramm zurückgeben kann. Ich will insgesamt vier Funktionen nutzen. Der Einfachheit halber beschränke ich es mal auf die Eingabefunktion. Wäre nett wenn mir da jemand weiterhelfen kann <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="🙂"
    /><br />
Hier mein bisheriges Programm:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;windows.h&gt;

int eingabe()
{
	int matrix_a[5][5]; 
	int matrix_b[5][5];
	int zeile_a, spalte_a, zeile_b, spalte_b;
	int i, j;
	cout &lt;&lt; &quot;Wieviele Zeilen soll Matrix A haben? &quot;;
	cin &gt;&gt; zeile_a;
	cout &lt;&lt; &quot;Wieviele Spalten soll Matrix A haben? &quot;;
	cin &gt;&gt; spalte_a;
	cout &lt;&lt; &quot;Wieviele Zeilen soll Matrix B haben? &quot;;
	cin &gt;&gt; zeile_b;
	cout &lt;&lt; &quot;Wieviele Spalten soll Matrix B haben? &quot;;
	cin &gt;&gt; spalte_b;

	//Eingabe von Matrix A
	cout &lt;&lt; &quot;Geben Sie Matrix A ein: \n&quot;;
	for (i = 0; i &lt; zeile_a; i ++)
	{
		for (j = 0; j &lt; spalte_a; j ++)
		{
			cout &lt;&lt; &quot;Feld[&quot; &lt;&lt; i+1 &lt;&lt; &quot;][&quot; &lt;&lt; j+1 &lt;&lt; &quot;]: &quot;; 
			cin &gt;&gt; matrix_a[i][j];
		}
	}

	//Eingabe von Matrix B
	cout &lt;&lt; &quot;Geben Sie Matrix B ein: \n&quot;;
	for (i = 0; i &lt; zeile_b; i ++)
	{
		for (j = 0; j &lt; spalte_b; j ++)
		{
			cout &lt;&lt; &quot;Feld[&quot; &lt;&lt; i+1 &lt;&lt; &quot;][&quot; &lt;&lt; j+1 &lt;&lt; &quot;]: &quot;;
			cin &gt;&gt; matrix_b[i][j];
		}
	}
	return ???;
}

void main()
{
	char b;
	do
	{
	cout &lt;&lt; &quot;Programm zur Berechnung von Summe und Produkt zweier Matrizen\n&quot;;
	cout &lt;&lt; &quot;\nEs kann maximal eine 5x5 Matrix eingegeben werden!\n&quot;;
	cout &lt;&lt; &quot;Das Programm arbeitet nur mit Integer-Werten korrekt!\n\n&quot;;
	cin &gt;&gt; b;
		switch (b)
		{
			case 'I':
			case 'i':
				system(&quot;cls&quot;);
				??? eingabe(); ???
				getch();
				system(&quot;cls&quot;);
				break;
			case 'O':
			case 'o':
				system(&quot;cls&quot;);
				//ausgabefunktion;
				getch();
				system(&quot;cls&quot;);
				break;
			case 'A':
			case 'a':
				system(&quot;cls&quot;);
				//additionsfunktion;
				getch();
				system(&quot;cls&quot;);
				break;
			case 'M':
			case 'm':
				system(&quot;cls&quot;);
				//multiplikationsfunktion;
				getch();
				system(&quot;cls&quot;);
				break;
			case 'B':
			case 'b':
				break;
			default:
				cout &lt;&lt; &quot;Falsche Eingabe!\a&quot; &lt;&lt; endl;
				getch();
				system(&quot;cls&quot;);
				break;
		}
	}while(b != 'b' &amp;&amp; b != 'B');
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/172083/array-bzw-adresse-aus-funktion-ins-hauptprogramm-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 16:07:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/172083.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Feb 2007 10:45:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 10:45:15 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bräuchte mal dringend Hilfe. Ich schreibe ein Programm zur Addition und Multiplikation von zwei Matrizen. Das hatte auch funktioniert. Nun wollte ich die einzelnen Schritte noch in Funktionen aufteilen. Dabei kam das Problem auf wie ich das Array bzw. die Adresse des ersten Elements an das Hauptprogramm zurückgeben kann. Ich will insgesamt vier Funktionen nutzen. Der Einfachheit halber beschränke ich es mal auf die Eingabefunktion. Wäre nett wenn mir da jemand weiterhelfen kann <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="🙂"
    /><br />
Hier mein bisheriges Programm:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;windows.h&gt;

int eingabe()
{
	int matrix_a[5][5]; 
	int matrix_b[5][5];
	int zeile_a, spalte_a, zeile_b, spalte_b;
	int i, j;
	cout &lt;&lt; &quot;Wieviele Zeilen soll Matrix A haben? &quot;;
	cin &gt;&gt; zeile_a;
	cout &lt;&lt; &quot;Wieviele Spalten soll Matrix A haben? &quot;;
	cin &gt;&gt; spalte_a;
	cout &lt;&lt; &quot;Wieviele Zeilen soll Matrix B haben? &quot;;
	cin &gt;&gt; zeile_b;
	cout &lt;&lt; &quot;Wieviele Spalten soll Matrix B haben? &quot;;
	cin &gt;&gt; spalte_b;

	//Eingabe von Matrix A
	cout &lt;&lt; &quot;Geben Sie Matrix A ein: \n&quot;;
	for (i = 0; i &lt; zeile_a; i ++)
	{
		for (j = 0; j &lt; spalte_a; j ++)
		{
			cout &lt;&lt; &quot;Feld[&quot; &lt;&lt; i+1 &lt;&lt; &quot;][&quot; &lt;&lt; j+1 &lt;&lt; &quot;]: &quot;; 
			cin &gt;&gt; matrix_a[i][j];
		}
	}

	//Eingabe von Matrix B
	cout &lt;&lt; &quot;Geben Sie Matrix B ein: \n&quot;;
	for (i = 0; i &lt; zeile_b; i ++)
	{
		for (j = 0; j &lt; spalte_b; j ++)
		{
			cout &lt;&lt; &quot;Feld[&quot; &lt;&lt; i+1 &lt;&lt; &quot;][&quot; &lt;&lt; j+1 &lt;&lt; &quot;]: &quot;;
			cin &gt;&gt; matrix_b[i][j];
		}
	}
	return ???;
}

void main()
{
	char b;
	do
	{
	cout &lt;&lt; &quot;Programm zur Berechnung von Summe und Produkt zweier Matrizen\n&quot;;
	cout &lt;&lt; &quot;\nEs kann maximal eine 5x5 Matrix eingegeben werden!\n&quot;;
	cout &lt;&lt; &quot;Das Programm arbeitet nur mit Integer-Werten korrekt!\n\n&quot;;
	cin &gt;&gt; b;
		switch (b)
		{
			case 'I':
			case 'i':
				system(&quot;cls&quot;);
				??? eingabe(); ???
				getch();
				system(&quot;cls&quot;);
				break;
			case 'O':
			case 'o':
				system(&quot;cls&quot;);
				//ausgabefunktion;
				getch();
				system(&quot;cls&quot;);
				break;
			case 'A':
			case 'a':
				system(&quot;cls&quot;);
				//additionsfunktion;
				getch();
				system(&quot;cls&quot;);
				break;
			case 'M':
			case 'm':
				system(&quot;cls&quot;);
				//multiplikationsfunktion;
				getch();
				system(&quot;cls&quot;);
				break;
			case 'B':
			case 'b':
				break;
			default:
				cout &lt;&lt; &quot;Falsche Eingabe!\a&quot; &lt;&lt; endl;
				getch();
				system(&quot;cls&quot;);
				break;
		}
	}while(b != 'b' &amp;&amp; b != 'B');
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1220995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220995</guid><dc:creator><![CDATA[Mr.Brause]]></dc:creator><pubDate>Thu, 01 Feb 2007 10:45:15 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 10:57:29 GMT]]></title><description><![CDATA[<p>Vermutlich wäre es die bessere Lösung, wenn das Hauptprogamm die Arrays anlegt und als Parameter an die übrigen Funktionen übergibt:</p>
<pre><code class="language-cpp">void eingabe(int a[5][5],int b[5][5])
{
  ...
}

int main()
{
  int matix_a[5][5],matrix_b[5][5];
  ...
  switch(toupper(b))
  {
  case 'I':
    eingabe(matrix_a,matrix_b);
    break
  ...
  }
}
</code></pre>
<p>PS: Wenn du mit der Arraygröße nicht auf 5*5 beschränkt bleiben willst, schau dir die Lösungen aus der <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39489.html" rel="nofollow">FAQ</a> an <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/1221001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221001</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Feb 2007 10:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 11:10:20 GMT]]></title><description><![CDATA[<p>Danke erstmal für die sehr schnelle Antwort <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="🙂"
    /><br />
Ich hab das mal so eingearbeitet. Und es hat geklappt.<br />
Wie könnte ich jetzt die zwei Arrays a und b wieder in das Hauptprogramm zurückgeben. Die Arrays werden in der Funktion Eingabe gefüllt und sollen dann an das Hauptprogramm zurückgeliefert werden, damit sie dort zur Verfügung stehen. Ich weiß ja, dass man nicht die Felder selbst übergeben kann, sondern nur deren Adresse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221006</guid><dc:creator><![CDATA[Mr.Brause]]></dc:creator><pubDate>Thu, 01 Feb 2007 11:10:20 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 12:04:37 GMT]]></title><description><![CDATA[<p>Die brauchst du gar nicht zurückgeben, die bleiben gleich beim Hauptprogramm. (die Array-Verarbeitung von C(++) ist etwas eigenwillig - faktisch übergibst du keine Kopie des Arrays, sondern nur dessen Adresse, so daß eingabe() direkt in dem Datenbereich schreibt, den main() sich reserviert hat.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221044</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Feb 2007 12:04:37 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 12:34:12 GMT]]></title><description><![CDATA[<p>Ok gut zu wissen <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="🙂"
    /> Wie konnte man nochmal dann aus anderen Funktionen heraus auf die Arrays zugreifen, die ja im Hauptprogramm angelegt sind. Ich müsste die Felder ansonsten erst in den Funktionen irgendwie bekannt machen. Ansonsten meckert ja der Compiler wegen nicht deklarierter Bezeichner.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221068</guid><dc:creator><![CDATA[Mr.Brause]]></dc:creator><pubDate>Thu, 01 Feb 2007 12:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 12:36:43 GMT]]></title><description><![CDATA[<p>Genauso wie im obigen Beispiel - indem du sie als Parameter an die entsprechenden Funktionen übergibst (die Funktion 'eingabe()' aus meinem obigen Beitrag kann über a[i][j] auf die Elemente des Arrays zugreifen, das im Hauptprogramm als 'matrix_a' angelegt wurde).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221069</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Feb 2007 12:36:43 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 12:59:24 GMT]]></title><description><![CDATA[<p>Das mit den Matrizen hat funktioniert <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="👍"
    /> Weißt du auch wie ich das jetzt mit den Variablen zeile_a, spalte_a... mache. Diese werden ja ebenfalls in der Funktion Eingabe mit Werten belegt. Die Werte für zeile_a, spalte_a... benötige ich dann ja wieder z.B. in der Ausgabe. Diese Variablen sind ja keine Arrays sondern einfache Integerzahlen. Mache ich das dann über return?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221088</guid><dc:creator><![CDATA[Mr.Brause]]></dc:creator><pubDate>Thu, 01 Feb 2007 12:59:24 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 13:06:11 GMT]]></title><description><![CDATA[<p>Über return kannst du nur einen einzelnen Wert zurückgeben. Für weitere Werte mußt du die Variablen über Zeiger oder Referenzen übergeben:</p>
<pre><code class="language-cpp">void eingabe(int mat[5][5],int* zeilen,int*spalten)
{
  cin&gt;&gt;*zeilen;
  cin&gt;&gt;*spalten;
  ...
}

...
eingabe(matrix_a,&amp;zeile_a,&amp;spalte_a);
...

//oder

void eingabe(int mat[5][5],int&amp; zeilen,int&amp; spalten)
{
  cin&gt;&gt;zeilen;
  cin&gt;&gt;spalten;
}

...
eingabe(matrix_a,zeile_a,spalte_a);
...
</code></pre>
<p>PS: Empfehlung des Hauses: Anstelle der Arrays (bei denen du die Größe zur Laufzeit festlegen mußt) solltest du lieber verschachtelte vector&lt;&gt;en verwenden. Außer daß sie nahezu beliebig groß werden können, merken sie sich auch selber, wie groß sie sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221096</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Feb 2007 13:06:11 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 14:01:00 GMT]]></title><description><![CDATA[<p>Sehr gut, vielen vielen Dank dafür <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="👍"
    /> <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="👍"
    /> <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="👍"
    /><br />
Jetzt hätte ich noch eine Frage, wie kann man die Arrays dynamisch abspeichern und eingeben? Ich glaube diese Variante ist es nicht. Gab es da nicht irgendwas mit new und delete. Wie würde denn das ungefähr bei meinem Beispiel aussehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221140</guid><dc:creator><![CDATA[Mr.Brause]]></dc:creator><pubDate>Thu, 01 Feb 2007 14:01:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 14:03:46 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Wenn du mit der Arraygröße nicht auf 5*5 beschränkt bleiben willst, schau dir die Lösungen aus der <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39489.html" rel="nofollow">FAQ</a> an <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>
</blockquote>
<p><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/1221143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221143</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Thu, 01 Feb 2007 14:03:46 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 14:04:07 GMT]]></title><description><![CDATA[<p>Guckst du nach oben - dort habe ich einen passenden FAQ-Eintrag verlinkt (und das nicht nur zum Spaß ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221144</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Feb 2007 14:04:07 GMT</pubDate></item><item><title><![CDATA[Reply to Array bzw. Adresse aus Funktion ins Hauptprogramm übergeben on Thu, 01 Feb 2007 14:07:45 GMT]]></title><description><![CDATA[<p>Oh ja richtig <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="😃"
    /><br />
Wer lesen kann ist klar im Vorteil...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221146</guid><dc:creator><![CDATA[Mr.Brause]]></dc:creator><pubDate>Thu, 01 Feb 2007 14:07:45 GMT</pubDate></item></channel></rss>