<?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[Mehrdimensionales Array zwischen zwei Funktionen]]></title><description><![CDATA[<p>Ist es in C++ möglich, ein zweidimensionales Array variabler Größe (!) von einer Funktion zur nächsten zu bringen?</p>
<p>- new geht nicht, braucht eine Konstante als Größe<br />
- globale Variable ebenfalls nicht, weil ich deren Größe zwischenzeitlich ändern müsste<br />
- Umweg über eine Datei wäre die _absolute_ Notlösung, aber ich will erst alle anderen Möglichkeiten ausschöpfen</p>
<p>Die Größe des Arrays ist in beiden Dimensionen zu jeder Zeit bekannt, aber eben variabel. Ich habe das Array quasi als lokale Variable mit Hilfe einer Funktion erstellt und will das jetzt in einer anderen Funktion verarbeiten.</p>
<p>Pseudocode:</p>
<pre><code>Funktion1() {
  n = Zufallszahl;
  erzeuge NeuesArray[n][n];
  FülleArrayMitZahlen();
  Funktion2(NeuesArray, n);
}
Funktion2(Array DasArray, n) {
  GebeZahlenAus(DasArray, n);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/131803/mehrdimensionales-array-zwischen-zwei-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 05:52:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/131803.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Jan 2006 23:20:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:20:54 GMT]]></title><description><![CDATA[<p>Ist es in C++ möglich, ein zweidimensionales Array variabler Größe (!) von einer Funktion zur nächsten zu bringen?</p>
<p>- new geht nicht, braucht eine Konstante als Größe<br />
- globale Variable ebenfalls nicht, weil ich deren Größe zwischenzeitlich ändern müsste<br />
- Umweg über eine Datei wäre die _absolute_ Notlösung, aber ich will erst alle anderen Möglichkeiten ausschöpfen</p>
<p>Die Größe des Arrays ist in beiden Dimensionen zu jeder Zeit bekannt, aber eben variabel. Ich habe das Array quasi als lokale Variable mit Hilfe einer Funktion erstellt und will das jetzt in einer anderen Funktion verarbeiten.</p>
<p>Pseudocode:</p>
<pre><code>Funktion1() {
  n = Zufallszahl;
  erzeuge NeuesArray[n][n];
  FülleArrayMitZahlen();
  Funktion2(NeuesArray, n);
}
Funktion2(Array DasArray, n) {
  GebeZahlenAus(DasArray, n);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/958348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958348</guid><dc:creator><![CDATA[scel]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:20:54 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:25:12 GMT]]></title><description><![CDATA[<p>Ja sicher gehts das:</p>
<pre><code class="language-cpp">void bar( int** Array2D, int Dim1, int Dim2 );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/958353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958353</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:25:12 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:27:54 GMT]]></title><description><![CDATA[<p>Und wie muss ich das genau aufrufen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/958356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958356</guid><dc:creator><![CDATA[scel]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:27:54 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:34:20 GMT]]></title><description><![CDATA[<p>Ich habe noch etwas Wichtiges vergessen:<br />
Funktion1 startet nicht Funktion2, sondern sie laufen parallel:</p>
<pre><code class="language-cpp">int main() {
  Funktion1(...);
  Funktion2(...);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/958363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958363</guid><dc:creator><![CDATA[scel]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:34:20 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:41:43 GMT]]></title><description><![CDATA[<p>so:</p>
<pre><code class="language-cpp">void func( int** array, int d1, int d2 )
{
  for( int i = 0; i &lt; d1; ++i )
  {
     for( int j = 0; j &lt; d2; ++j )
        cout &lt;&lt; array[i][j] &lt;&lt; &quot; &quot;;
     cout &lt;&lt; &quot;\n&quot;;
  }
}

int main()
{
  int** array;
  array = new int*[ 10 ];
  for( int i = 0; i &lt; 10; ++i )
    array[ i ] = new int(i);

  func( array, 10, 10 );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/958365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958365</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:41:43 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:47:41 GMT]]></title><description><![CDATA[<p>Solche Lösungen hab ich auch anderswo gesehen, aber da das Array zunächst nur als lokale Variable existiert, wird es gelöscht (der Speicher freigegeben), sobald Funktion1 endet. Ich muss irgrendwas finden, das es mir erlaubt, einen Datenblock variabler Größe dauerhaft im Speicher abzulegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/958367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958367</guid><dc:creator><![CDATA[scel]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:49:40 GMT]]></title><description><![CDATA[<p>schlag in deinem buch mal new nach</p>
]]></description><link>https://www.c-plusplus.net/forum/post/958368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958368</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:49:40 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:51:06 GMT]]></title><description><![CDATA[<p>Any schrieb:</p>
<blockquote>
<p>so:</p>
<pre><code class="language-cpp">void func( int** array, int d1, int d2 )
{
  for( int i = 0; i &lt; d1; ++i )
  {
     for( int j = 0; j &lt; d2; ++j )
        cout &lt;&lt; array[i][j] &lt;&lt; &quot; &quot;;
     cout &lt;&lt; &quot;\n&quot;;
  }
}

int main()
{
  int** array;
  array = new int*[ 10 ];
  for( int i = 0; i &lt; 10; ++i )
    array[ i ] = new int(i);

  func( array, 10, 10 );
}
</code></pre>
</blockquote>
<p>Ein schönes delete [] sollte auch nicht vergessen werden bzw mehrere <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/958369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958369</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:51:06 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:54:55 GMT]]></title><description><![CDATA[<p>scel schrieb:</p>
<blockquote>
<p>Solche Lösungen hab ich auch anderswo gesehen, aber da das Array zunächst nur als lokale Variable existiert,...</p>
</blockquote>
<p>...die aufm Heap (oder heißt das im Heap ???) abgelegt wird.</p>
<p>D.h.: Da wird nichts freigegeben, sobald du die Funktion verlässt !!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/958370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958370</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:54:55 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Thu, 05 Jan 2006 23:59:14 GMT]]></title><description><![CDATA[<p>Freak_Coder schrieb:</p>
<blockquote>
<p>Any schrieb:</p>
<blockquote>
<p>so:</p>
<pre><code class="language-cpp">void func( int** array, int d1, int d2 )
{
  for( int i = 0; i &lt; d1; ++i )
  {
     for( int j = 0; j &lt; d2; ++j )
        cout &lt;&lt; array[i][j] &lt;&lt; &quot; &quot;;
     cout &lt;&lt; &quot;\n&quot;;
  }
}

int main()
{
  int** array;
  array = new int*[ 10 ];
  for( int i = 0; i &lt; 10; ++i )
    array[ i ] = new int(i);

  func( array, 10, 10 );
}
</code></pre>
</blockquote>
<p>Ein schönes delete [] sollte auch nicht vergessen werden bzw mehrere <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>Sorry, aber ohne Editor verlässt mich die Motivation so schnell, man hat hier ja nichtmal tabs (alt+y ist kein tab-ersatz!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/958372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958372</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Thu, 05 Jan 2006 23:59:14 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Fri, 06 Jan 2006 00:26:34 GMT]]></title><description><![CDATA[<p>Vielen Dank für eure Hilfe, habs dann mit ein bißchen Gewalt doch tatsächlich hinbekommen. Hoff ich.</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
void func1(int**, int);
void func2(int**, int);

using namespace std;

int main(){
  int n = 4;  
  int** array;
  array = new int*[n];
  func1(array, n);
  func2(array, n);  
  system(&quot;PAUSE&quot;);
}

void func1(int** array, int n) {

  for (int i = 0; i &lt; 10; ++i) {
    array[i] = new int[n]; 
  }
  array[2][3] = 4;

}
void func2(int** array, int n) {
     cout &lt;&lt; array[2][3] &lt;&lt; endl;      
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/958383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958383</guid><dc:creator><![CDATA[scel]]></dc:creator><pubDate>Fri, 06 Jan 2006 00:26:34 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdimensionales Array zwischen zwei Funktionen on Fri, 06 Jan 2006 00:57:40 GMT]]></title><description><![CDATA[<p>scel schrieb:</p>
<blockquote>
<p>Vielen Dank für eure Hilfe, habs dann mit ein bißchen Gewalt doch tatsächlich hinbekommen. Hoff ich.</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
void func1(int**, int);
void func2(int**, int);

using namespace std;

int main(){
  int n = 4;  
  int** array;
  array = new int*[n];
  func1(array, n);
  func2(array, n);  
  system(&quot;PAUSE&quot;);
}

void func1(int** array, int n) {
  
  for (int i = 0; i &lt; 10; ++i) {
    array[i] = new int[n]; 
  }
  array[2][3] = 4;
  
}
void func2(int** array, int n) {
     cout &lt;&lt; array[2][3] &lt;&lt; endl;      
}
</code></pre>
</blockquote>
<p>Sind noch ein paar Machken drin <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>
<p>1. Speicher wieder frei geben!!! Da wo new [] ist muss auch immer delete [] sein. Die 2 sind die besten Freunde und unzerstrennlich <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="🕶"
    /></p>
<p>2. 4 != 10 --&gt; Finde selbst den Fehler <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>
<p>3. func1 und func2 gehen davon aus das im Array an der Stelle [2][3] was steht und was ist wenn da nichts steht !!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/958391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/958391</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 06 Jan 2006 00:57:40 GMT</pubDate></item></channel></rss>