<?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 referenz an Methode]]></title><description><![CDATA[<p>Schönen guten Tag,</p>
<p>ich versuche die Referenz dieses Arrays -&quot; int feld[7][4][2] &quot;- an eine Methode zu übergeben.<br />
Ich habe es so versucht:</p>
<pre><code class="language-cpp">int feld[7][4][2];
// Initialisierung des feldes...
// ...
int result = methode(&amp;feld);
</code></pre>
<p>der Methodenkopf sieht so aus;</p>
<pre><code class="language-cpp">int methode(int *f);
</code></pre>
<p>Die Fehlermeldung ist folgende:</p>
<blockquote>
<p>error C2664: 'CMyEventReceiver::CMyEventReceiver(irr::core::position2d&lt;T&gt; *,int *)' : cannot convert parameter 2 from 'int (*__w64 )[7][4][2]' to 'int *'</p>
</blockquote>
<p>Ich habe leider keine Idee wie es besser geht.<br />
Kann mir jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165088/array-referenz-an-methode</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 04:54:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165088.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Nov 2006 12:02:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to array referenz an Methode on Wed, 15 Nov 2006 12:02:51 GMT]]></title><description><![CDATA[<p>Schönen guten Tag,</p>
<p>ich versuche die Referenz dieses Arrays -&quot; int feld[7][4][2] &quot;- an eine Methode zu übergeben.<br />
Ich habe es so versucht:</p>
<pre><code class="language-cpp">int feld[7][4][2];
// Initialisierung des feldes...
// ...
int result = methode(&amp;feld);
</code></pre>
<p>der Methodenkopf sieht so aus;</p>
<pre><code class="language-cpp">int methode(int *f);
</code></pre>
<p>Die Fehlermeldung ist folgende:</p>
<blockquote>
<p>error C2664: 'CMyEventReceiver::CMyEventReceiver(irr::core::position2d&lt;T&gt; *,int *)' : cannot convert parameter 2 from 'int (*__w64 )[7][4][2]' to 'int *'</p>
</blockquote>
<p>Ich habe leider keine Idee wie es besser geht.<br />
Kann mir jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175118</guid><dc:creator><![CDATA[Staati]]></dc:creator><pubDate>Wed, 15 Nov 2006 12:02:51 GMT</pubDate></item><item><title><![CDATA[Reply to array referenz an Methode on Wed, 15 Nov 2006 12:06:14 GMT]]></title><description><![CDATA[<p>Ne du versucht eine Adresse zu uebergeben.</p>
<pre><code class="language-cpp">&amp;feld[0][0][0] // das ist die Adresse des ersten ints!
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1175120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175120</guid><dc:creator><![CDATA[Thomas ** 0]]></dc:creator><pubDate>Wed, 15 Nov 2006 12:06:14 GMT</pubDate></item><item><title><![CDATA[Reply to array referenz an Methode on Wed, 15 Nov 2006 12:12:14 GMT]]></title><description><![CDATA[<p>Danke, damit ist zumindest die Fehlermeldung weg.</p>
<p>Und wie kann ich nun damit weiterarbeiten?<br />
Zumindest kann ich in der methode nicht f[0][1][2] nutzen</p>
<blockquote>
<p>error C2109: subscript requires array or pointer type</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1175126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175126</guid><dc:creator><![CDATA[Staati]]></dc:creator><pubDate>Wed, 15 Nov 2006 12:12:14 GMT</pubDate></item><item><title><![CDATA[Reply to array referenz an Methode on Wed, 15 Nov 2006 12:23:06 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9591">@Thomas</a>: Das ist keine Lösung, sondern bestenfalls ein Workaround um das Problem herum.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1724">@Staati</a>: Eindimensionale Arrays können als Pointer angesprochen/konvertiert) werden, bei mehrdimensionalen Arrays geht das nicht mehr (das hängt mit den technischen Gegebenheiten der Pointer-Arithmetik und der Speicheraufteilung von Arrays zusammen). Damit deine Funktion so ein Array schluckt, benötigt sie einen passenden Prototyp:</p>
<pre><code class="language-cpp">int methode(int* val[7][4]);
</code></pre>
<p>(mit Thomas' Ansatz erhältst du einen nackten Zeiger auf den Speicherbereich des Arrays - und mit dem Wissen, daß die einzelnen Zeilen deines Arrays hintereinander abgelegt werden, könntest du dich dort durchhangeln)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175133</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 15 Nov 2006 12:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to array referenz an Methode on Wed, 15 Nov 2006 12:37:46 GMT]]></title><description><![CDATA[<p>Danke für die Antwort.<br />
Könntest du mir ein Beispiel posten? Ich versteh nicht ganz wie du das meinst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175145</guid><dc:creator><![CDATA[Staati]]></dc:creator><pubDate>Wed, 15 Nov 2006 12:37:46 GMT</pubDate></item><item><title><![CDATA[Reply to array referenz an Methode on Wed, 15 Nov 2006 12:39:54 GMT]]></title><description><![CDATA[<p>Naja das kann man nicht sagen was hier sinnvoll ist, wenn man nicht die Aufgabe kennt. Ich halte es im Allgemeinen nie fuer sinnvoll Arrays mit mehr als 2 Dimensionen zu erstellen.<br />
Koennt ja auch sein, dass die Methode bewusst den Speicher linear interpretieren soll... [was nicht der Fall ist was der letzte Post des OP zeigt]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175148</guid><dc:creator><![CDATA[Thomas ** 0]]></dc:creator><pubDate>Wed, 15 Nov 2006 12:39:54 GMT</pubDate></item><item><title><![CDATA[Reply to array referenz an Methode on Wed, 15 Nov 2006 13:45:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">typedef int (*ptr)[4][2];
int methode(ptr feld)          // feld  ist ein Zeiger (ptr) oder int(*)[4][2]
{
        feld[0][0][0] = 7;    // Damit schreibst Du 7 ins Feld[0][0][0] ausserhalb der methode!
        return feld[0][0][0]; // 7 wird zurückgegeben, 7 stammt aus Feld ausserhalb der Methode 
}        

int main()
{

        int feld[7][4][2]; 
	int a =  methode(feld);

        return 0;
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175213</guid><dc:creator><![CDATA[balduin]]></dc:creator><pubDate>Wed, 15 Nov 2006 13:45:12 GMT</pubDate></item><item><title><![CDATA[Reply to array referenz an Methode on Wed, 15 Nov 2006 16:22:35 GMT]]></title><description><![CDATA[<p>Danke!</p>
<p>Nun habe ich aber ein neues Problem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich habe hier im Forum diesen Code-Schnipsel gefunden:</p>
<pre><code class="language-cpp">int main()
{
    // Einen Zeiger auf ein Int-Array mit 5 Elementen anlegen
    int (*pArr)[5] = 0;

    // Den Zeiger auf ein zweidimensionales Array zeigen lassen.
    // Wichtig: Die zweite Dimension muss mit der Array-Größe
    // übereinstimmen, mit der der Zeiger deklariert wurde
    // pArr = new int [5][2]; wäre z.B. illegal, da ein Zeiger auf ein
    // Array mit 5 Elementen nicht in einen Zeiger auf ein Array mit
    // 2 Elementen konvertiert werden kann.
    pArr = new int[2][5];
    pArr[0][0] = 42;
    // ...
    // Am Ende aufräumen nicht vergessen
    delete [] pArr;
}
</code></pre>
<p>Geht das mit 3 dimensionalen Arrays?<br />
Ich würde gerne aus dem Array das ich am Anfang definiert habe</p>
<pre><code class="language-cpp">int field[7][4][2];
</code></pre>
<p>später im Programm nach bedarf:</p>
<pre><code class="language-cpp">field[7][2][4];
</code></pre>
<p>machen...</p>
<p>Ich weiss mehrdimensionale arrays sind wahrscheinlich ne schlechte Lösung, und ich hätte nen vector nehmen sollen, aber nu is der Weg zurück länger als wenn ich es so weitermache..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175261</guid><dc:creator><![CDATA[Staati]]></dc:creator><pubDate>Wed, 15 Nov 2006 16:22:35 GMT</pubDate></item></channel></rss>