<?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[return 2d Array]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe versucht eine &quot;Box&quot; auf dem Bildschirm auszugeben. Hat auch Funktioniert, also hatte ich die einzelnen Zeichen in ein char Array gepackt. Auch das hatte funktioniert. Nur nun stehe ich vor dem Problem, wie gebe ich das 2d-Array zurück an die main-Funktion? Habe hier schon einen Ansatz:</p>
<pre><code class="language-cpp">char *createBox ()
{
    char box [11][21];
    char (*_box)[21] = box;

    for (int i = 0; i &lt; 10; i++)
    {
        for (int j = 0; j&lt;20;j++)
        {
            if (i == 0 || i == 9 || j == 0 || j == 19)
            {
                box[i][j] = '#';
            } else
            box[i][j] = ' ';
        }
    }
    return _box[0];
}
</code></pre>
<p>Welchen Typ brauche ich, um das Array zu &quot;erhalten&quot;?</p>
<p>grüße,</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272332/return-2d-array</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 00:10:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272332.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Aug 2010 19:17:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to return 2d Array on Sun, 15 Aug 2010 19:17:37 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe versucht eine &quot;Box&quot; auf dem Bildschirm auszugeben. Hat auch Funktioniert, also hatte ich die einzelnen Zeichen in ein char Array gepackt. Auch das hatte funktioniert. Nur nun stehe ich vor dem Problem, wie gebe ich das 2d-Array zurück an die main-Funktion? Habe hier schon einen Ansatz:</p>
<pre><code class="language-cpp">char *createBox ()
{
    char box [11][21];
    char (*_box)[21] = box;

    for (int i = 0; i &lt; 10; i++)
    {
        for (int j = 0; j&lt;20;j++)
        {
            if (i == 0 || i == 9 || j == 0 || j == 19)
            {
                box[i][j] = '#';
            } else
            box[i][j] = ' ';
        }
    }
    return _box[0];
}
</code></pre>
<p>Welchen Typ brauche ich, um das Array zu &quot;erhalten&quot;?</p>
<p>grüße,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1940359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1940359</guid><dc:creator><![CDATA[Array]]></dc:creator><pubDate>Sun, 15 Aug 2010 19:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to return 2d Array on Sun, 15 Aug 2010 19:33:27 GMT]]></title><description><![CDATA[<p>Möglichkeit 1: (in Struct oder Klasse kapseln)</p>
<pre><code class="language-cpp">struct box {
  typedef char c21[21];
  c21 data[11];
  c21      &amp; operator[](int idx)       {return data[idx];}
  c21 const&amp; operator[](int idx) const {return data[idx];}
};

box createBox()
{
  box result;
  result[0][0] = '#';
  ...
  result[10][20] = '#';
  return result;
}
</code></pre>
<p>Möglichkeit 2: (Standardcontainer benutzen)</p>
<pre><code class="language-cpp">typedef std::vector&lt;std::vector&lt;char&gt; &gt; box;

box createBox()
{
  box b (11);
  for (int k=0; k&lt;11; ++k) b[k].resize(21);
  ...
  return b;
}
</code></pre>
<p>(beides ungetestet)</p>
<p>Es gibt natürlich noch mehr, aber das sind die zwei Sachen, dir mir spontan einfallen und halbwegs Sinn machen.</p>
<p>kk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1940363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1940363</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 15 Aug 2010 19:33:27 GMT</pubDate></item><item><title><![CDATA[Reply to return 2d Array on Sun, 15 Aug 2010 20:10:31 GMT]]></title><description><![CDATA[<p>Du müsstest das Array schon in nen Vektor oder so packen.<br />
Arrays lassen sich nicht kopieren, daher kannst du es nur per Referenz oder Zeiger zurückgeben, jedoch hast du dann ein Problem, das würde dann zu einem Laufzeitfehler führen.<br />
Denn wie du ja hoffentlich weißt, soll man niemals Zeiger oder Referenzen auf lokale Objekte zurückgeben, da des Objekt nach der Funktion ja gar nicht mehr exisitiert.</p>
<p>Hoffe konnte dir helfen</p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1940373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1940373</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Sun, 15 Aug 2010 20:10:31 GMT</pubDate></item><item><title><![CDATA[Reply to return 2d Array on Sun, 15 Aug 2010 20:13:04 GMT]]></title><description><![CDATA[<p>Dein Code ist sowieso etwas gefährlich, da das Objekt box nach Funktionsende nicht mehr gültig ist. Du solltest es wenn dann auf dem Heap erstellen (mit new char[x][y] ) und nachher per delete[] wieder freigeben.<br />
/Edit: mist einer schneller gewesen^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1940374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1940374</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Sun, 15 Aug 2010 20:13:04 GMT</pubDate></item><item><title><![CDATA[Reply to return 2d Array on Sun, 15 Aug 2010 20:53:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">typedef char (*Ptr)[21];
Ptr createBox ()
{
    static char box [11][21];
    char (*_box)[21] = box;

    for (int i = 0; i &lt; 10; i++)
    {
        for (int j = 0; j&lt;20;j++)
        {
            if (i == 0 || i == 9 || j == 0 || j == 19)
            {
                box[i][j] = '#';
            } else
            box[i][j] = ' ';
        }
    }
    return _box;
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1940386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1940386</guid><dc:creator><![CDATA[willi2]]></dc:creator><pubDate>Sun, 15 Aug 2010 20:53:32 GMT</pubDate></item></channel></rss>