<?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 übergeben]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich möchte ein 2d-Array aus einer Funktion zurückgeben.<br />
So weit ich das weiß, geht das nur, indem ich einen Pointer auf das Array zurückgeben, da eine Funktion kein ganzes Array zurückgeben kann.</p>
<p>Schaut ungefähr so aus:</p>
<pre><code>int array[9][9];
int *pointer;
int* func()
{
 pointer = &amp;array[9][9];
 return pointer;
}
</code></pre>
<p>dann in der aufrufenden funktion:</p>
<pre><code>int array2[9][9];
int *pointer2;
pointer2 = func();
array2[9][9] = *pointer2;
</code></pre>
<p>Ich weiß, dass das kompletter Blödsinn ist, aber was besseres is mir nicht eingfallen. <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>
<p>Vielen Dank im Vorraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/126244/array-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 15:56:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/126244.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 Nov 2005 12:13:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array übergeben on Sun, 13 Nov 2005 12:13:43 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich möchte ein 2d-Array aus einer Funktion zurückgeben.<br />
So weit ich das weiß, geht das nur, indem ich einen Pointer auf das Array zurückgeben, da eine Funktion kein ganzes Array zurückgeben kann.</p>
<p>Schaut ungefähr so aus:</p>
<pre><code>int array[9][9];
int *pointer;
int* func()
{
 pointer = &amp;array[9][9];
 return pointer;
}
</code></pre>
<p>dann in der aufrufenden funktion:</p>
<pre><code>int array2[9][9];
int *pointer2;
pointer2 = func();
array2[9][9] = *pointer2;
</code></pre>
<p>Ich weiß, dass das kompletter Blödsinn ist, aber was besseres is mir nicht eingfallen. <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>
<p>Vielen Dank im Vorraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/916645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/916645</guid><dc:creator><![CDATA[nightrider]]></dc:creator><pubDate>Sun, 13 Nov 2005 12:13:43 GMT</pubDate></item><item><title><![CDATA[Reply to Array übergeben on Sun, 13 Nov 2005 13:25:45 GMT]]></title><description><![CDATA[<p>wenn das feld wie in deinem bsp. bereits global ist brauchst du es nicht zurueckgeben <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="🙄"
    /><br />
ansonsten:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int** f()
	{
	static int arr[2][2]={ 1,2,3,4 };
	return reinterpret_cast&lt;int**&gt;(&amp;arr);
	};

int main()
	{
	std::cout&lt;&lt;reinterpret_cast&lt;int&gt;(f()[3]);
	return 0;
	};
</code></pre>
<p>ist aber stark von abzuraten.</p>
<p>2d arrays aus funktionen zurueckgeben geht afaik nicht. -zumindest hat man keine informationen mehr ueber die beschaffenheit des 2d arrays weswegen man es noch hoechstens als 1d array verwerten koennte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/916713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/916713</guid><dc:creator><![CDATA[Cpt. Tanga]]></dc:creator><pubDate>Sun, 13 Nov 2005 13:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to Array übergeben on Sun, 13 Nov 2005 13:40:30 GMT]]></title><description><![CDATA[<p>Okay, thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/916731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/916731</guid><dc:creator><![CDATA[nightrider]]></dc:creator><pubDate>Sun, 13 Nov 2005 13:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to Array übergeben on Sun, 13 Nov 2005 13:44:40 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">return reinterpret_cast&lt;int**&gt;(&amp;arr);
</code></pre>
<p>Hübsch. Aber wie ich hier schon so oft erklärt habe (so oft, dass es sogar eine FAQ ist: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-58906.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-58906.html</a>), ist ein Zeiger auf das erste Element eines zwei-dimensionales int-Arrays kein int** sondern ein int(*)[secondDim].</p>
<p>Sowas ginge also:</p>
<pre><code class="language-cpp">typedef int Matrix[3][3];
typedef int(*pMatrix)[3];

pMatrix f() {
    static Matrix m;
    return m;
}
</code></pre>
<p>Ob das nun Sinnvoll ist, sei mal dahingestellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/916737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/916737</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sun, 13 Nov 2005 13:44:40 GMT</pubDate></item></channel></rss>