<?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[mehrdim. dyn. array als Fkt-parameter]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein kleines Problem mit mehrdimensionalen arrays, die mit new erzeugt werden. Wenn ich diese als Fkt-parameter übergeben möchte, bekomme ich compiler fehlermeldungen:</p>
<p>[Error] cannot convert 'double**' to 'double (<em>)[3]' for argument '1' to 'int testfunktion(double (</em>)[3])'</p>
<p>Hier ist der zugehörige Code:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int testfunktion( double zeiger[][3] );

int main()
{
	int a = 3;
	double ** zeiger = new double * [a];
	zeiger[0] = new double [3];
	zeiger[1] = new double [3];
	zeiger[2] = new double [3];

	zeiger[0][0] = 5;
	zeiger[1][0] = 5;
	zeiger[2][0] = 5;

	zeiger[0][1] = 5;
	zeiger[1][1] = 5;
	zeiger[2][1] = 5;

	zeiger[0][2] = 5;
	zeiger[1][2] = 5;
	zeiger[2][2] = 5;

	testfunktion(zeiger);
}

int testfunktion( double zeiger[][3] )
{
	cout &lt;&lt; zeiger[0][0] &lt;&lt; &quot;\t&quot; &lt;&lt; zeiger[1][1] &lt;&lt; &quot;\t&quot; &lt;&lt; zeiger[2][2];
	cin &gt;&gt; zeiger[0][0];
}
</code></pre>
<p>wäre schön, wenn jemand weiterhelfen könnte (sry falls es so einen ähnlichen Eintrag schon gibt, habe nichts gefunden)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319099/mehrdim-dyn-array-als-fkt-parameter</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 05:16:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319099.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Aug 2013 17:16:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Tue, 06 Aug 2013 17:16:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein kleines Problem mit mehrdimensionalen arrays, die mit new erzeugt werden. Wenn ich diese als Fkt-parameter übergeben möchte, bekomme ich compiler fehlermeldungen:</p>
<p>[Error] cannot convert 'double**' to 'double (<em>)[3]' for argument '1' to 'int testfunktion(double (</em>)[3])'</p>
<p>Hier ist der zugehörige Code:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int testfunktion( double zeiger[][3] );

int main()
{
	int a = 3;
	double ** zeiger = new double * [a];
	zeiger[0] = new double [3];
	zeiger[1] = new double [3];
	zeiger[2] = new double [3];

	zeiger[0][0] = 5;
	zeiger[1][0] = 5;
	zeiger[2][0] = 5;

	zeiger[0][1] = 5;
	zeiger[1][1] = 5;
	zeiger[2][1] = 5;

	zeiger[0][2] = 5;
	zeiger[1][2] = 5;
	zeiger[2][2] = 5;

	testfunktion(zeiger);
}

int testfunktion( double zeiger[][3] )
{
	cout &lt;&lt; zeiger[0][0] &lt;&lt; &quot;\t&quot; &lt;&lt; zeiger[1][1] &lt;&lt; &quot;\t&quot; &lt;&lt; zeiger[2][2];
	cin &gt;&gt; zeiger[0][0];
}
</code></pre>
<p>wäre schön, wenn jemand weiterhelfen könnte (sry falls es so einen ähnlichen Eintrag schon gibt, habe nichts gefunden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344004</guid><dc:creator><![CDATA[badstyleprogrammerr]]></dc:creator><pubDate>Tue, 06 Aug 2013 17:16:53 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Tue, 06 Aug 2013 17:24:53 GMT]]></title><description><![CDATA[<p>Mach C++ in C++, kein C in C++:<br />
new -&gt; vector<br />
Arrayübergabe -&gt; Iteratoren<br />
low-level Gefrickel -&gt; Abstraktion</p>
<p>Weiterhin sind ganz allgemein 2D-Arrays keine Doppelzeiger, wie du es in Zeile 10 versuchst, daher klappt das auch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344006</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 06 Aug 2013 17:24:53 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Tue, 06 Aug 2013 17:30:23 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>new -&gt; vector</p>
</blockquote>
<p>heap -&gt; stack</p>
<pre><code class="language-cpp">double zeiger[3][3] = {
  5,5,5,
  5,5,5,
  5,5,5,
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2344009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344009</guid><dc:creator><![CDATA[doppelzeiger]]></dc:creator><pubDate>Tue, 06 Aug 2013 17:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Tue, 06 Aug 2013 17:34:33 GMT]]></title><description><![CDATA[<p>doppelzeiger schrieb:</p>
<blockquote>
<pre><code class="language-cpp">double zeiger[3][3]
</code></pre>
</blockquote>
<p><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="😃"
    /> <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344014</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 06 Aug 2013 17:34:33 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 14:29:37 GMT]]></title><description><![CDATA[<p>ok, ich weiche dann jetzt auf vector aus. gibt es da auch extended initializer lists oder geht das nur so wie ich oben angegeben hab, also jedes element einzeln zuweisen.</p>
<p>doppelzeiger schrieb:</p>
<blockquote>
<pre><code class="language-cpp">double zeiger[3][3] = {
  5,5,5,
  5,5,5,
  5,5,5,
};
</code></pre>
</blockquote>
<p>ich kenne bei der Kompilierung die Dimension noch nicht. Deshalb hab ich das so nicht gemacht.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Mach C++ in C++, kein C in C++:</p>
</blockquote>
<p>was ist an meinem Code denn C und nicht C++?</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Weiterhin sind ganz allgemein 2D-Arrays keine Doppelzeiger, wie du es in Zeile 10 versuchst, daher klappt das auch nicht.</p>
</blockquote>
<p>solange ich das array nicht als Funktionsparameter übergebe, funktioniert das in meinem eigentlichen Programm wunderbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344211</guid><dc:creator><![CDATA[badstyleprogrammerr]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:29:37 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 14:38:05 GMT]]></title><description><![CDATA[<p>badstyleprogrammerr schrieb:</p>
<blockquote>
<p>ich kenne bei der Kompilierung die Dimension noch nicht.</p>
</blockquote>
<p>Sicher?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344213</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:38:05 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 14:52:28 GMT]]></title><description><![CDATA[<p>da sich die Dimension aus den Daten ergibt, und die Daten während der Laufzeit des Programms gelesen/geändert werden, bin ich mir fast sicher, dass ich mir sicher bin. <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/2344221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344221</guid><dc:creator><![CDATA[badstyleprogrammerr]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:52:28 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 14:55:28 GMT]]></title><description><![CDATA[<p>Aber das 3 ist doch fix?</p>
<pre><code class="language-cpp">std::vector&lt;std::array&lt;int,3&gt; &gt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2344224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344224</guid><dc:creator><![CDATA[doppelzeiger]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:55:28 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 15:00:42 GMT]]></title><description><![CDATA[<p>das ist ja nicht der richtige Code, den ich da geposted hab. ich pflanze hier doch keine 800 Zeilen Code ins Forum. Es ging nur darum, dass der Beispielcode den gleichen Compiler error ausspuckt wie mein eigentliches Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344229</guid><dc:creator><![CDATA[badstyleprogrammerr]]></dc:creator><pubDate>Wed, 07 Aug 2013 15:00:42 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 15:03:51 GMT]]></title><description><![CDATA[<p>badstyleprogrammerr schrieb:</p>
<blockquote>
<p>was ist an meinem Code denn C und nicht C++?</p>
</blockquote>
<p>Die genannten drei Punkte.</p>
<blockquote>
<p>solange ich das array nicht als Funktionsparameter übergebe, funktioniert das in meinem eigentlichen Programm wunderbar.</p>
</blockquote>
<p>Und meinst du nicht, dass dies ein Hinweis sein könnte, dass da etwas nicht stimmt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344231</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 07 Aug 2013 15:03:51 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 15:04:34 GMT]]></title><description><![CDATA[<p>Die Frage macht aber nur Sinn, wenn mindestens eine Dimension konstant ist. Bei <code>int[3][3]</code> sind beide konstant, bei <code>std::vector&lt;std::array&lt;int,3&gt; &gt;</code> nur eine.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344232</guid><dc:creator><![CDATA[doppelzeiger]]></dc:creator><pubDate>Wed, 07 Aug 2013 15:04:34 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 15:34:31 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>new -&gt; vector<br />
Arrayübergabe -&gt; Iteratoren<br />
low-level Gefrickel -&gt; Abstraktion</p>
</blockquote>
<p>seit wann ist new den nicht C++?</p>
<p>im Prinzip wird beim Funktionsaufruf nicht das array, sondern nur der Zeiger auf das array übergeben, und Zeiger sind meines Wissens nach auch Iteratoren, also verstehe ich die Bemerkung nicht.</p>
<p>mit der dritten Bemerkung kann ich sowiso nichts anfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344249</guid><dc:creator><![CDATA[badstyleprogrammerr]]></dc:creator><pubDate>Wed, 07 Aug 2013 15:34:31 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 15:42:06 GMT]]></title><description><![CDATA[<p>doppelzeiger schrieb:</p>
<blockquote>
<p>Die Frage macht aber nur Sinn, wenn mindestens eine Dimension konstant ist. Bei <code>int[3][3]</code> sind beide konstant, bei <code>std::vector&lt;std::array&lt;int,3&gt; &gt;</code> nur eine.</p>
</blockquote>
<p>nur &quot;a&quot; soll als variabel angesehen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344252</guid><dc:creator><![CDATA[badstyleprogrammerr]]></dc:creator><pubDate>Wed, 07 Aug 2013 15:42:06 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 16:08:05 GMT]]></title><description><![CDATA[<p>badstyleprogrammerr schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>new -&gt; vector<br />
Arrayübergabe -&gt; Iteratoren<br />
low-level Gefrickel -&gt; Abstraktion</p>
</blockquote>
<p>seit wann ist new den nicht C++?</p>
<p>im Prinzip wird beim Funktionsaufruf nicht das array, sondern nur der Zeiger auf das array übergeben, und Zeiger sind meines Wissens nach auch Iteratoren, also verstehe ich die Bemerkung nicht.</p>
<p>mit der dritten Bemerkung kann ich sowiso nichts anfangen.</p>
</blockquote>
<p>Alle drei deiner Erwiderungen bestätigen bloß, dass ich absolut Recht hatte. Leider bist du, anstatt daraus zu lernen, irgendwie in einen komischen Beißreflex übergegangen. Nun, dann werde ich wohl lieber nicht weiter füttern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344261</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 07 Aug 2013 16:08:05 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 16:40:23 GMT]]></title><description><![CDATA[<p>badstyleprogrammerr schrieb:</p>
<blockquote>
<p>seit wann ist new den nicht C++?</p>
</blockquote>
<p>Syntaktisch schon. Es geht hier jedoch um guten Stil, Exceptionsicherheit und RAII. <code>new</code> ist da ein klassisches Beispiel.</p>
<blockquote>
<p>im Prinzip wird beim Funktionsaufruf nicht das array, sondern nur der Zeiger auf das array übergeben, und Zeiger sind meines Wissens nach auch Iteratoren, also verstehe ich die Bemerkung nicht.</p>
</blockquote>
<p>Ja, aber sie sind als Iteratoren für einen allgemeinen Algorithmus (sehr) unflexibel und damit unpassend. Mit Iteratoren meint SeppJ, dass die Funktion* ein Iteratorenpaar auf Start und End einer Menge nimmt, wobei der Iteratoren-Typ ein Templateparameter ist.</p>
<p>~*Die ja eigentlich, wie im darauf folgenden Text impliziert wird, keine Funktion ist, sondern ein Funktionstemplate~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344269</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 07 Aug 2013 16:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to mehrdim. dyn. array als Fkt-parameter on Wed, 07 Aug 2013 18:25:40 GMT]]></title><description><![CDATA[<p>@ SeppJ<br />
Ich wollte hier nicht verbohrt rüberkommen (schließlich habe ich ja die Frage gestellt und somit zugegeben, dass ich nicht der Experte bin), sondern lediglich diskutieren, denn einige deiner knappen und unverständlichen Kommentare haben mich nicht weitergebracht.</p>
<p>@ Sone<br />
Danke, das habe ich jetzt verstanden.</p>
<p>ps: ich hab jetzt vector anstatt new benutzt und es geht. Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344295</guid><dc:creator><![CDATA[badstyleprogrammerr]]></dc:creator><pubDate>Wed, 07 Aug 2013 18:25:40 GMT</pubDate></item></channel></rss>