<?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[Ausgabe mehrdimensionales Array mit Zeigeroperationen]]></title><description><![CDATA[<p>Habe das Problem, dass ich es nicht schaffe, die Werte dieses mehrdimensionalen Arrays auszugeben. Wo liegt der Fehler?!</p>
<pre><code>#include &lt;stdio.h&gt;
#define DIMX 4
#define DIMY 3

int main(void)
{
int dimx=DIMX,
    dimy=DIMY,
    iMin=0,

  // Warum erhalte ich immer die Speicheradressen anstatt der Werte?!
   iAry[DIMY][DIMX]={{12,19,99,8},{55,-6,7,-33},{9,10,11,12}};

  //Mit nur einer Dimension würde es gehen (Werte werden ausgegeben)
  //iAry[DIMX*DIMY]={23,423,2,-2,-21,56,75,64,23,12,8,5};

    for (iMin=0; iMin&lt;(DIMY*DIMX); iMin++)
	printf(&quot;%d\n&quot;, *(iAry+iMin));

return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/148391/ausgabe-mehrdimensionales-array-mit-zeigeroperationen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 19:40:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/148391.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 May 2006 09:31:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 09:31:25 GMT]]></title><description><![CDATA[<p>Habe das Problem, dass ich es nicht schaffe, die Werte dieses mehrdimensionalen Arrays auszugeben. Wo liegt der Fehler?!</p>
<pre><code>#include &lt;stdio.h&gt;
#define DIMX 4
#define DIMY 3

int main(void)
{
int dimx=DIMX,
    dimy=DIMY,
    iMin=0,

  // Warum erhalte ich immer die Speicheradressen anstatt der Werte?!
   iAry[DIMY][DIMX]={{12,19,99,8},{55,-6,7,-33},{9,10,11,12}};

  //Mit nur einer Dimension würde es gehen (Werte werden ausgegeben)
  //iAry[DIMX*DIMY]={23,423,2,-2,-21,56,75,64,23,12,8,5};

    for (iMin=0; iMin&lt;(DIMY*DIMX); iMin++)
	printf(&quot;%d\n&quot;, *(iAry+iMin));

return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1065319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065319</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 26 May 2006 09:31:25 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 09:45:45 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>da du im C++ Forum gepostest hast :</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
const int DIMX = 4;
const int DIMY = 3;

int main()
{

  // Warum erhalte ich immer die Speicheradressen anstatt der Werte?!
  int iAry[DIMY][DIMX]={{12,19,99,8},{55,-6,7,-33},{9,10,11,12}};

  for (int x = 0; x &lt; DIMX; x++)
  {
    for (int y = 0; y &lt; DIMY; y++)
      std::cout &lt;&lt; iAry[y][x] &lt;&lt; &quot; &quot;;
    std::cout &lt;&lt; std::endl;
  }

return 0;
}
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1065326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065326</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 26 May 2006 09:45:45 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 09:46:26 GMT]]></title><description><![CDATA[<p>Ich verstehe nicht ganz dein Problem. Liegt der Fehler in der Ausgabe der Werte oder äußert er sich bei der Speicherung in dem Array?</p>
<p>Folgende Beispielapplikation sollte funktionieren.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main()
{
  static const int dimx = 4;
  static const int dimy = 3;

  int v[dimy][dimx] = { {12, 19 ,99 ,8},
			{55, -6, 7, -33},
			{9, 10, 11, 12} };

  for (int i=0; i&lt;dimy; ++i)
    for (int j=0; j&lt;dimx; ++j)
      cout &lt;&lt; v[i][j] &lt;&lt; endl;

  return 0;
}
</code></pre>
<p>Ausgabe:</p>
<blockquote>
<p>12<br />
19<br />
99<br />
8<br />
55<br />
-6<br />
7<br />
-33<br />
9<br />
10<br />
11<br />
12</p>
</blockquote>
<p>Edit: Ich bin wohl immer ein Tick zu langsam <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/1065330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065330</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 26 May 2006 09:46:26 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 09:57:05 GMT]]></title><description><![CDATA[<p>Danke für eure Hilfe, aber ein Student hat es da nicht so einfach. Es gilt das Ganze ohne die Benutzung von eckigen Klammern zu bewerkstelligen :-p</p>
<p>Also nur mit Zeigern...</p>
<p>Wenn ich das Ganze mit einem eindimensionalem Array laufen lasse, erhalte ich (durch den Dereferenzierungsoperator) die Werte. Nur beim Mehrdimensionalen dann die Adressen, obwohl ich nichts verändere...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1065339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065339</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 26 May 2006 09:57:05 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 09:59:46 GMT]]></title><description><![CDATA[<p>Um ein mehrdimensionales Array auszugeben, mußt du auch doppelt dereferenzieren:</p>
<pre><code class="language-cpp">*(*(arr+x)+y)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1065340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065340</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 26 May 2006 09:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 10:11:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main()
{
  static const int dimx = 4;
  static const int dimy = 3+1;  // nullterminiert

  /**
   * Zweidimensionales Array initialisieren. '\0' repraesentiert das
   * Ende des Arrays
  */
  int v[dimy][dimx] = { {12, 19 ,99 ,8},
			{55, -6, 7, -33},
			{9, 10, 11, 12},
			{'\0'} };

  /**
   * Zeiger auf das Erste Element des Arrays. Die Elemente befinden
   * sich der Reihe nach im Speicher. Es reicht also, wenn man den
   * Zeiger dereferenziert und anschließend inkrementiert. Das
   * Vorkommen von '\0' beenden die Schleife.
  */
  int* p = &amp;v[0][0];
  while (*p) cout &lt;&lt; *p++ &lt;&lt; endl;

  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1065346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065346</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 26 May 2006 10:11:39 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 10:39:04 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Um ein mehrdimensionales Array auszugeben, mußt du auch doppelt dereferenzieren:</p>
<pre><code class="language-cpp">*(*(arr+x)+y)
</code></pre>
</blockquote>
<p>Warum? Die einzelnen Felder stehen doch hintereinander im Speicher... oder?!</p>
<p>btw: Beziehe mich hier auf die SPrache &quot;C&quot; - kein C++! (sry)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1065351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065351</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 26 May 2006 10:39:04 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 10:48:36 GMT]]></title><description><![CDATA[<p>Die einzelnen Elemente deines Arrays sind vom Typ &quot;Array of int&quot; (also selbst wieder Arrays), d.h. um auf die Elemente dieser Teilarrays zugreifen zu können, benötigst du noch eine Dereferenzierung (btw: der Indexzugriff &quot;a[i]&quot; ist äquivalent zur Pointer-Arithmetik &quot;*(a+i)&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1065360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065360</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 26 May 2006 10:48:36 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 11:05:03 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Die einzelnen Elemente deines Arrays sind vom Typ &quot;Array of int&quot; (also selbst wieder Arrays), d.h. um auf die Elemente dieser Teilarrays zugreifen zu können, benötigst du noch eine Dereferenzierung (btw: der Indexzugriff &quot;a[i]&quot; ist äquivalent zur Pointer-Arithmetik &quot;*(a+i)&quot;).</p>
</blockquote>
<p>Das ist mir klar, und analog folgere ich daraus, dass a[i][j] äquivalent <em>(</em>(a+i)+j) sein sollte...</p>
<p>VS .NET 03 hält das aber für eine ungültige Zeigeroperation...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1065376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065376</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 26 May 2006 11:05:03 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe mehrdimensionales Array mit Zeigeroperationen on Fri, 26 May 2006 11:08:52 GMT]]></title><description><![CDATA[<blockquote>
<p>btw: Beziehe mich hier auf die SPrache &quot;C&quot; - kein C++! (sry)</p>
</blockquote>
<p>Das Konzept der Arrays gibt es in C und in C++. Es ist letzten Endes egal ob du in C oder in C++ programmierst; spielt für dieses Problem keine Rolle! <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>
<blockquote>
<p>Die einzelnen Felder stehen doch hintereinander im Speicher... oder?!</p>
</blockquote>
<p>Genau deswegen kann man sich das <em>(</em>(a+i)+j) Konstrukt sparen, auch wenn dieses funktionieren würde - bekanntlich führen ja mehrere Wege nach Rom. <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/1065381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065381</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 26 May 2006 11:08:52 GMT</pubDate></item></channel></rss>