<?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[2 Dimensionale Arrays übergeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe mit C++ folgendes Problem, ich möchte folgendes Array:</p>
<pre><code>static ellsiCanIdRange idRange[] = 
        {
          {0, 0x10},
          {0x40, 0},
          {0x100, 0x17f},
          {0x200, 0x37f},
          {0x20000000, 0}         // Enable all 29-Bit CAN-ID's
        };
</code></pre>
<p>an eine Funktion einer Klasse übergeben, die dann wiederum eine andere Funktion aufruft:</p>
<pre><code>bool CEllsi::setIdRange(ellsiCanIdRange *IdRange, int EnableDelete)
  {   
....
this-&gt;status = ellsiCanIds(this-&gt;sockState, &amp;this-&gt;socket, 2500, IdRange, sizeof(IdRange) / sizeof(ellsiCanIdRange), EnableDelete);
....
}

int ellsiCanIds(int sock, struct sockaddr_in *psai, uint32_t timeoutMs, ellsiCanIdRange *pidr, int entries, int del)
{
...
}
</code></pre>
<p>Rufe ich die Funktion ellsiCanIds direkt aus der main Funktion auf und übergebe ihr das Array idRange funktioniert die Funktion ellsiCanIds perfekt, gehe ich den Umweg über die Klassenfunktion, haut die Funktion ellsiCanIds nicht mehr hin.</p>
<p>Weiß jemand woran das liegt?</p>
<p>Beste Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240584/2-dimensionale-arrays-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 22:27:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240584.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 08 May 2009 13:11:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2 Dimensionale Arrays übergeben on Fri, 08 May 2009 13:11:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe mit C++ folgendes Problem, ich möchte folgendes Array:</p>
<pre><code>static ellsiCanIdRange idRange[] = 
        {
          {0, 0x10},
          {0x40, 0},
          {0x100, 0x17f},
          {0x200, 0x37f},
          {0x20000000, 0}         // Enable all 29-Bit CAN-ID's
        };
</code></pre>
<p>an eine Funktion einer Klasse übergeben, die dann wiederum eine andere Funktion aufruft:</p>
<pre><code>bool CEllsi::setIdRange(ellsiCanIdRange *IdRange, int EnableDelete)
  {   
....
this-&gt;status = ellsiCanIds(this-&gt;sockState, &amp;this-&gt;socket, 2500, IdRange, sizeof(IdRange) / sizeof(ellsiCanIdRange), EnableDelete);
....
}

int ellsiCanIds(int sock, struct sockaddr_in *psai, uint32_t timeoutMs, ellsiCanIdRange *pidr, int entries, int del)
{
...
}
</code></pre>
<p>Rufe ich die Funktion ellsiCanIds direkt aus der main Funktion auf und übergebe ihr das Array idRange funktioniert die Funktion ellsiCanIds perfekt, gehe ich den Umweg über die Klassenfunktion, haut die Funktion ellsiCanIds nicht mehr hin.</p>
<p>Weiß jemand woran das liegt?</p>
<p>Beste Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707767</guid><dc:creator><![CDATA[AndreasPietruschka]]></dc:creator><pubDate>Fri, 08 May 2009 13:11:11 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dimensionale Arrays übergeben on Fri, 08 May 2009 13:14:18 GMT]]></title><description><![CDATA[<p>In der Funktion <code>setIdRange</code> ist IdRange nur noch ein Zeiger auf einen Speicherblock. sizeof(IdRange) gibt somit die Grösse des Zeigers zurück (unter 32 Bit Systemen 4) und nicht die Grösse des Arrays. Ein Array und ein Zeiger sind zwei unterschiedliche Dinge.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707768</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 08 May 2009 13:14:18 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dimensionale Arrays übergeben on Fri, 08 May 2009 13:15:30 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>danke für die schnelle Antwort, dereferenzieren des Zeigers würde abhilfe schaffen?</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707770</guid><dc:creator><![CDATA[AndreasPietruschka]]></dc:creator><pubDate>Fri, 08 May 2009 13:15:30 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dimensionale Arrays übergeben on Fri, 08 May 2009 13:43:00 GMT]]></title><description><![CDATA[<p>AndreasPietruschka schrieb:</p>
<blockquote>
<p>danke für die schnelle Antwort, dereferenzieren des Zeigers würde abhilfe schaffen?</p>
</blockquote>
<p>Nein, überleg doch mal, worauf der Zeiger zeigt. Auf ein einzelnes Objekt. Das da mal ein Array war, ist in der Funktion nicht mehr bekannt. C Arrays sind sehr flüchtig. Man arbeitet normaleweise mit einem Zeiger auf ein Array und die Grösse gibt man jeweils als zusätzlichen Parameter mit.</p>
<p>In C++ verwendet man allerdings meistens C++ Container, da diese deutlich einfacher zu verwenden sind. Nur so als Randbemerkung <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>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707793</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 08 May 2009 13:43:00 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Dimensionale Arrays übergeben on Sat, 09 May 2009 09:34:18 GMT]]></title><description><![CDATA[<p>Vielleicht hilft dir auch das hier weiter:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-212469-and-highlight-is-array+2+dimensionales.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-212469-and-highlight-is-array+2+dimensionales.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1708072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1708072</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 09 May 2009 09:34:18 GMT</pubDate></item></channel></rss>