<?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 als Rückgabewert]]></title><description><![CDATA[<p>Erst mal zu dem Problem, das ich habe:</p>
<p>Ich schreibe mir gerade ein DXInput Klasse, um auf die Tastenabfrage meiner Tastatur eingehen zu können. Hierzu wird in der Klasse &quot;Game&quot; eben ein solches Object angelegt.<br />
Der Tastenstatus an sich ist ein bool array[256].<br />
Bei jedem durchlauf wird die funktion &quot;GetKeyState&quot; aufgerufen, die mir in meinem Array die Werte ändert.<br />
Ok, bis dahin kein Problem.<br />
Mein Problem ist jetzt allerdings, das ich dieses bool array gerne auf ein lokales, sprich auf einen member der Klasse &quot;Game&quot; &quot;kopieren&quot; möchte.<br />
Allerdings kann man als Rückgabewert ja leider keine kompletten arrays angeben.</p>
<p>Ich könnte, das KeyStateArray auch public machen, ist aber denke ich nicht Sinn der Sache.</p>
<p>Wie schaffe ich es also ein komplettes Array aus einem objekt in ein anderes zu kopieren, ohne ein und die selbe Funktion 500 mal aufrufen zu müssen?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268479/array-als-rückgabewert</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 20:09:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268479.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jun 2010 17:46:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array als Rückgabewert on Wed, 09 Jun 2010 17:46:26 GMT]]></title><description><![CDATA[<p>Erst mal zu dem Problem, das ich habe:</p>
<p>Ich schreibe mir gerade ein DXInput Klasse, um auf die Tastenabfrage meiner Tastatur eingehen zu können. Hierzu wird in der Klasse &quot;Game&quot; eben ein solches Object angelegt.<br />
Der Tastenstatus an sich ist ein bool array[256].<br />
Bei jedem durchlauf wird die funktion &quot;GetKeyState&quot; aufgerufen, die mir in meinem Array die Werte ändert.<br />
Ok, bis dahin kein Problem.<br />
Mein Problem ist jetzt allerdings, das ich dieses bool array gerne auf ein lokales, sprich auf einen member der Klasse &quot;Game&quot; &quot;kopieren&quot; möchte.<br />
Allerdings kann man als Rückgabewert ja leider keine kompletten arrays angeben.</p>
<p>Ich könnte, das KeyStateArray auch public machen, ist aber denke ich nicht Sinn der Sache.</p>
<p>Wie schaffe ich es also ein komplettes Array aus einem objekt in ein anderes zu kopieren, ohne ein und die selbe Funktion 500 mal aufrufen zu müssen?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909649</guid><dc:creator><![CDATA[DNKpp]]></dc:creator><pubDate>Wed, 09 Jun 2010 17:46:26 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Rückgabewert on Wed, 09 Jun 2010 17:47:31 GMT]]></title><description><![CDATA[<p>Benutze lieber std::tr1::array. Arrays kannst du in C und C++ nämlich nicht zurückgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909652</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Wed, 09 Jun 2010 17:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Rückgabewert on Wed, 09 Jun 2010 17:59:52 GMT]]></title><description><![CDATA[<p>Die Frage ist, brauchst du wirklich eine komplette Kopie des Array's?<br />
Warum alles doppelt speichern und das Risiko von Dateninkonsistenz riskieren.<br />
Eine Referenz oder ein Zeiger auf das Array sollte an und für sich doch reichen.<br />
Oder etwa nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909658</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Wed, 09 Jun 2010 17:59:52 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Rückgabewert on Wed, 09 Jun 2010 18:07:38 GMT]]></title><description><![CDATA[<p>Kann ein Zeiger nicht auch nur auf 1 Element des Arrays zeigen?<br />
Wenn ja, wäre das ja das selbe in Grün.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909662</guid><dc:creator><![CDATA[DNKpp]]></dc:creator><pubDate>Wed, 09 Jun 2010 18:07:38 GMT</pubDate></item><item><title><![CDATA[Reply to Array als Rückgabewert on Wed, 09 Jun 2010 18:52:26 GMT]]></title><description><![CDATA[<p>Elemente von Arrays liegen hintereinander im Speicher. Wenn du einen Zeiger auf ein Arrayelement hast und diesen inkrementierst, zeigt er deswegen auf das nächste Array-Element. Deswegen kannst du z.B. einen Zeiger auf das erste Element und die Größe des Arrays zur Verfügung stellen.</p>
<p>Eine andere (m.E. bessere) Möglichkeit: die Klasse DXInput bietet Zugriffsfunktionen auf das Array, z.B. <code>bool GetKeyState(int keyindex) const;</code> . In den Fällen, wo du jetzt das Array kopieren willst, übergibst du stattdessen eine Refenz auf das DXInput-Objekt. Die entsprechende Klasse / Funktion kann dann von dieser die benötigten Tasten erfragen.<br />
Vorteile dieser Variante: du sparst Overhead, eine Referenz kopiert sich viel schneller als 256 bool-Werte und du bewirkst eine zusätzliche Kapselung der Daten zu Gunsten einer allgemeinen Schnittstelle. Dadurch fällt es später viel leichter, die Implementierung zu verändern, z.B. dass in <code>DXInput::GetKeyState</code> direkt <code>GetKeyState</code> oder <code>GetAsyncKeyState</code> aufgerufen wird, anstatt in jedem Durchgang alle Tasten pauschal abzufragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909680</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Wed, 09 Jun 2010 18:52:26 GMT</pubDate></item></channel></rss>