<?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[mehrdimensionale arrays als funktionsergebnis]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich muss jede Menge 2-dimensionale Feld zusammen stellen, die gleichartig strukturiert sind, sich somit gut in eine funktion auslagern lassen.</p>
<p>In einem Untergramm verwende ich einen vektor:</p>
<pre><code class="language-cpp">double vek[3][3]
</code></pre>
<p>dieser soll in abhängigkeit von 2 parametern (int) mittels einem anderen unterprogramm belegt werden</p>
<pre><code class="language-cpp">vek=create_vek(i,k)
</code></pre>
<p>wie muss mein unterprogramm aussehen? wie rufe ich es auf? ich kenne die problematik mit zeigern und arrays...</p>
<p>ich stelle es mir etwa so vor...</p>
<pre><code class="language-cpp">double createvek[3][3](int i, int k)
</code></pre>
<p>Aber wie gesagt... als rückgabewert dieser funktion sollte ja wieder eine [3][3]Matrix stehen...</p>
<p>schon mal Danke im vorraus</p>
<p>Micha</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/209147/mehrdimensionale-arrays-als-funktionsergebnis</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 09:21:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/209147.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Mar 2008 11:19:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mehrdimensionale arrays als funktionsergebnis on Thu, 27 Mar 2008 11:19:00 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich muss jede Menge 2-dimensionale Feld zusammen stellen, die gleichartig strukturiert sind, sich somit gut in eine funktion auslagern lassen.</p>
<p>In einem Untergramm verwende ich einen vektor:</p>
<pre><code class="language-cpp">double vek[3][3]
</code></pre>
<p>dieser soll in abhängigkeit von 2 parametern (int) mittels einem anderen unterprogramm belegt werden</p>
<pre><code class="language-cpp">vek=create_vek(i,k)
</code></pre>
<p>wie muss mein unterprogramm aussehen? wie rufe ich es auf? ich kenne die problematik mit zeigern und arrays...</p>
<p>ich stelle es mir etwa so vor...</p>
<pre><code class="language-cpp">double createvek[3][3](int i, int k)
</code></pre>
<p>Aber wie gesagt... als rückgabewert dieser funktion sollte ja wieder eine [3][3]Matrix stehen...</p>
<p>schon mal Danke im vorraus</p>
<p>Micha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1481253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1481253</guid><dc:creator><![CDATA[Michaaaaaaaa]]></dc:creator><pubDate>Thu, 27 Mar 2008 11:19:00 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdimensionale arrays als funktionsergebnis on Thu, 27 Mar 2008 13:04:32 GMT]]></title><description><![CDATA[<p>Wo genau hast du denn ein Problem?</p>
<p>Hier mal was zum rumspielen. Vielleicht wird es so etwas klarer.. <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="🙄"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int* make_vec ( int x, int y)
{
	int nr = 0;
	int* v = new int[x*y];

	for (int i (0); i &lt; x; i++)
		for (int j (0); j &lt; y; j++)
			v[i*y+j] = nr++;

	return v;
}

void all_out (int* a, int x, int y)
{
	for (int i (0); i &lt; x; i++)
		for (int j (0); j &lt; y; j++)
			std::cout &lt;&lt; a[i*y+j] &lt;&lt; std::endl;
}

void out (int* a, int y, int posx, int posy)
{
	std::cout &lt;&lt; a[posx*y+posy] &lt;&lt; std::endl;
}

int main(void)
{

	int* k = make_vec (3, 3); 

	all_out (k, 3, 3);

	std::cout &lt;&lt; &quot;Nr. 0:1: &quot;;
	out (k, 3, 0, 1);

	delete[] k;
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1481363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1481363</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 27 Mar 2008 13:04:32 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdimensionale arrays als funktionsergebnis on Thu, 27 Mar 2008 13:16:31 GMT]]></title><description><![CDATA[<p>Michaaaaaaaa schrieb:</p>
<blockquote>
<p>ich stelle es mir etwa so vor...</p>
<pre><code class="language-cpp">double createvek[3][3](int i, int k)
</code></pre>
</blockquote>
<p>Wenn überhaupt, so müsste es wohl</p>
<pre><code class="language-cpp">double createvek(int i, int k)[3][3]
</code></pre>
<p>heißen. Allerdings darf der Rückgabetyp einer Funktion kein Array sein, dass ist also illegal.</p>
<p>Hier bietet sich tr1::array bzw. boost::array.</p>
<pre><code class="language-cpp">typedef std::tr1::array&lt;std::tr1:array&lt;double,3&gt;,3&gt; vek;
</code></pre>
<p>==&gt;</p>
<pre><code class="language-cpp">vek createvek(int i, int k);
</code></pre>
<p>Da die Dimensionen bekannt sind, gibt es keine guten Grund, kreativ mit Zeigern umzugehen: das dürfte auch ineffizient sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1481383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1481383</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 27 Mar 2008 13:16:31 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdimensionale arrays als funktionsergebnis on Thu, 27 Mar 2008 14:55:26 GMT]]></title><description><![CDATA[<p>danke!</p>
<p>ich werde mal ein wenig dran rumbasteln</p>
<p>Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1481488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1481488</guid><dc:creator><![CDATA[Michaaaaaaaa]]></dc:creator><pubDate>Thu, 27 Mar 2008 14:55:26 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdimensionale arrays als funktionsergebnis on Thu, 27 Mar 2008 14:59:29 GMT]]></title><description><![CDATA[<blockquote>
<p>Da die Dimensionen bekannt sind, gibt es keine guten Grund, kreativ mit Zeigern umzugehen: das dürfte auch ineffizient sein.</p>
</blockquote>
<p>Ja. Das stimmt schon. Aber ist sicher auch noch empfehlenswert, wenn man die sonstige Arbeitsweise ein bisschen kennenlernt. Mit sehr grosser Wahrscheinlichkeit wird er das auch mal machen müssen, ohne zu wissen, wie gross das Array ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1481492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1481492</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 27 Mar 2008 14:59:29 GMT</pubDate></item></channel></rss>