<?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[Was bedeutet int (T*)[3]]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich habe mal eine Frage zu 2D Arrays. (C Arrays)</p>
<p>In meinem Buch steht, das man C Arrays an eine Funktion übergeben kann.<br />
Man soll die Größe der Array mitgeben, damit die Funktion weis, wie groß die Array ist.</p>
<p>Jedoch verstehe ich eine Sache überhaupt nicht.</p>
<p>Wenn man eine 2D c-Array an eine Funktion übergibt. Muss man ja Dann auch 2 Werte übergeben. (x und y)<br />
Jedoch gäbe es laut Autor die Möglichkeit, das diese Informationen (teilweise) in den Typ mit einfließen. Jedoch verstehe ich ab hier überhaupt nichts mehr</p>
<p>Hier ein Beispiel.</p>
<p>Ich möchte eine 2D int Array übergeben.</p>
<pre><code>Int array2d [2][3] = {{...}{...}};
</code></pre>
<pre><code>int funktion(int (*T)[3], size_t n)
{
...
}
</code></pre>
<p>Was soll<br />
int (*T)[3]<br />
bewirken?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328038/was-bedeutet-int-t-3</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 16:08:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328038.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Sep 2014 13:57:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 13:57:10 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich habe mal eine Frage zu 2D Arrays. (C Arrays)</p>
<p>In meinem Buch steht, das man C Arrays an eine Funktion übergeben kann.<br />
Man soll die Größe der Array mitgeben, damit die Funktion weis, wie groß die Array ist.</p>
<p>Jedoch verstehe ich eine Sache überhaupt nicht.</p>
<p>Wenn man eine 2D c-Array an eine Funktion übergibt. Muss man ja Dann auch 2 Werte übergeben. (x und y)<br />
Jedoch gäbe es laut Autor die Möglichkeit, das diese Informationen (teilweise) in den Typ mit einfließen. Jedoch verstehe ich ab hier überhaupt nichts mehr</p>
<p>Hier ein Beispiel.</p>
<p>Ich möchte eine 2D int Array übergeben.</p>
<pre><code>Int array2d [2][3] = {{...}{...}};
</code></pre>
<pre><code>int funktion(int (*T)[3], size_t n)
{
...
}
</code></pre>
<p>Was soll<br />
int (*T)[3]<br />
bewirken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418178</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Thu, 18 Sep 2014 13:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 14:02:08 GMT]]></title><description><![CDATA[<p>Das bedeutet, dass T ein Zeiger auf ein int-Array mit 3 Elementen ist. Verabschiede dich von dem Gedanken, dass es 2d-Arrays gibt. Es gibt nur Arrays. ein &quot;mehrdimensionales&quot; Array ist ein Array, dessen Elemente Arrays sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418179</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 18 Sep 2014 14:02:08 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 14:18:25 GMT]]></title><description><![CDATA[<p>Ok. Mit 2D Arrays meine ich ja natürlich mehrdimensionale Arrays.</p>
<p>Also zeigt T auf array2d[0]?</p>
<p>Und T[2] ist also array2D[0][2]. Oder?</p>
<p>Kann mir einer grade nebenbei noch erklären was Arrays mit Zeigern zu tuen haben? Das begreife ich auch nicht so richtig.</p>
<p>Was Zeiger sind weis ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418181</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Thu, 18 Sep 2014 14:18:25 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 16:44:01 GMT]]></title><description><![CDATA[<p>Sebastian Müller schrieb:</p>
<blockquote>
<p>Also zeigt T auf array2d[0]?</p>
</blockquote>
<p>Ja.</p>
<blockquote>
<p>Und T[2] ist also array2D[0][2]. Oder?</p>
</blockquote>
<p><s>Ja.</s><br />
Nein, siehe campers Antwort weiter unten.</p>
<blockquote>
<p>Kann mir einer grade nebenbei noch erklären was Arrays mit Zeigern zu tuen haben? Das begreife ich auch nicht so richtig.</p>
</blockquote>
<p>Wäre gut, wenn du sagen würdest, was genau du nicht verstehst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418186</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 18 Sep 2014 16:44:01 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 15:05:35 GMT]]></title><description><![CDATA[<p>Ich meinem Buch wird immer beschrieben, das Arrays Zeiger wären. Stimmt das?</p>
<p>Wenn ja...</p>
<p>Ist die Array selbst der Zeiger, oder nur seine Elemente?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418187</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Thu, 18 Sep 2014 15:05:35 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 15:19:13 GMT]]></title><description><![CDATA[<p>Ein Array ist kein Zeiger.<br />
Ein Array ist ... naja, eben ein Array. Ein Ding das aus mehreren &quot;Objekten&quot; des selben Typs besteht, die hintereinander im Speicher liegen.</p>
<p>In C und C++ werden allerdings oft Zeiger auf das erste Element eines Arrays übergeben, und dann über die <code>ptr[index]</code> Syntax auf Elemente des Arrays zugegriffen.<br />
Deswegen ist <code>ptr</code> aber noch lange kein Array und das Array auch kein Zeiger.</p>
<p>Was die Sache noch verwirrender macht, ist, dass Arrays, so man sie an einer Stelle hinschreibt wo ein Zeiger erwartet wird, automatisch in einen Zeiger auf ihr erstes Element konvertiert werden.<br />
Nennt sich &quot;array to pointer decay&quot; - google den Begriff.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418188</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 18 Sep 2014 15:19:13 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 15:26:50 GMT]]></title><description><![CDATA[<p>Ahhhhh jetzt habe Ich es verstanden.</p>
<p>Ich habe mich gewundert warum man Anstelle eines richtigen Zeiger ,eine Array einsetzten kann. Bei Funktionsparametern bsw.</p>
<p>Danke für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418189</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Thu, 18 Sep 2014 15:26:50 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 15:25:07 GMT]]></title><description><![CDATA[<p>Sebastian Müller schrieb:</p>
<blockquote>
<p>Ich meinem Buch wird immer beschrieben, das Arrays Zeiger wären. Stimmt das?</p>
</blockquote>
<p>Nein, das ist völlig falsch. Wenn das da wirklich so drin steht, solltest du das Buch wahrscheinlich wegwerfen, der Autor hat etwas wesentliches nicht verstanden.</p>
<p>Ein Array ist eine Anordnung von Elementen gleichen Typs hintereinander im Speicher. Wenn ein Array in einem Ausdruck auftaucht (mit wenigen Ausnahmen, z.B. sizeof), wird es in einen Zeiger auf sein erstes Element umgewandelt. Mit diesem Zeiger kann man dann auf die folgenden Elemente des Arrays zugreifen, d.h. ein Ausdruck wie array[5] ist eigentlich eine Abkürzung für *((&amp;array[0]) + 5).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418190</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 18 Sep 2014 15:25:07 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 15:29:10 GMT]]></title><description><![CDATA[<p>Ich habe diese Textstelle nochmal im Buch nachgelesen, und hatte mich damals wohl verlesen.</p>
<p>Der Autor meint das selbe wie ihr.</p>
<p>Ich kann das Buch wohl behalten. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418194</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Thu, 18 Sep 2014 15:29:10 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 15:30:37 GMT]]></title><description><![CDATA[<p>Nochmals Danke für die Aufklärung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418195</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Thu, 18 Sep 2014 15:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 15:34:31 GMT]]></title><description><![CDATA[<p>Sebastian Müller schrieb:</p>
<blockquote>
<p>Ich habe mich gewundert warum man Anstelle eines richtigen Zeiger ,eine Array einsetzten kann. Bei Funktionsparametern bsw.</p>
</blockquote>
<p>Funktionsparameter sind ein (hässlicher) Sonderfall. Ein Funktionsparameter, der als Array deklariert ist, ist sogar immer gleichbedeutend mit einem Zeiger.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">void f(int array[2][3]);
// ist gleichbedeutend mit
void f(int (*array)[3]);
</code></pre>
<p>Das geht über den Array-&gt;Zeiger-Zerfall hinaus, beispielsweise kann man sowas machen, was mit Arrays nicht funktioniert (da der Zeiger, der sich durch den Zerfall ergibt, ein rvalue ist):</p>
<pre><code class="language-cpp">void f(int array[2][3]) {
  ++array; // zeigt nun auf das ehemalige Element array[1]
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2418196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418196</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 18 Sep 2014 15:34:31 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 16:40:38 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<blockquote>
<p>Und T[2] ist also array2D[0][2]. Oder?</p>
</blockquote>
<p>Ja.</p>
</blockquote>
<p>T[2] innerhalb der Funktion ist äquivalent zu array2D[2] ausserhalb der Funktion, beides verweist auf den Bereich unmittelbar hinter dem (äußeren) Array (weil das ja nur 2 Elemente hat).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418207</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 18 Sep 2014 16:40:38 GMT</pubDate></item><item><title><![CDATA[Reply to Was bedeutet int (T*)[3] on Thu, 18 Sep 2014 16:43:20 GMT]]></title><description><![CDATA[<p>Ups, richtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418209</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 18 Sep 2014 16:43:20 GMT</pubDate></item></channel></rss>