<?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[Ein Array aus einer Funktion zurückgeben!]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte aus einer Funktion mein Feld zurückgeben. Ich hab das folgendermaße gemacht:</p>
<p>int Lotto::getZahlen(void)<br />
{<br />
//Zufallszahlen generieren<br />
time_t T_Time; //Systemzeit generieren! Ist zu jeden neuen Instanz anders<br />
int Zufall_Feld_Zahlen[6];<br />
int Zufalls_Zahl; //</p>
<p>srand(time(&amp;T_Time));</p>
<p>for(int i=0; i&lt;6; i++)<br />
{<br />
Zufalls_Zahl=0;<br />
Zufalls_Zahl=(rand()%49)+1; //Zufallszahl von 1-49 generieren<br />
Zufall_Feld_Zahlen[i]=Zufalls_Zahl;<br />
}</p>
<p>return Zufall_Feld_Zahlen[];<br />
}</p>
<p>ich möchte Zufallszahlen in dem Feld generieren und dann mit return an dieser FKT zurückschicken!</p>
<p>void __fastcall TPRLotto::Button2Click(TObject *Sender)<br />
{<br />
int Rueck_Feld_Zahlen[6];</p>
<p>Rueck_Feld_Zahlen[6]=L1-&gt;getZahlen(); //Feld_Zahlen wird Set Zahlen übergeben damit<br />
// das Feld in der Klasse gespeichert<br />
for(int i=0; i&lt;6; i++)<br />
{<br />
Ausgabe1-&gt;Items-&gt;Add(IntToStr(Rueck_Feld_Zahlen[i]));<br />
}</p>
<p>//Eröffnet die Lottoziehung mit Button1 <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 />
Button1-&gt;Enabled=true;<br />
Button2-&gt;Enabled=false;<br />
}</p>
<p>...</p>
<p>Ich bekomme aber komische Zahlen ausgeben. Kann evt einer mir helfen?</p>
<p>Ich bin inmoment viel mit Java beschäftigt und habe denn gespür für C++ verloren.<br />
Ich müsste ein Kopie zurückgeben und dann in ein neues Feld der ausgangsfunktion zu speichern oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128379/ein-array-aus-einer-funktion-zurückgeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 17:17:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128379.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 Dec 2005 09:28:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 09:28:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte aus einer Funktion mein Feld zurückgeben. Ich hab das folgendermaße gemacht:</p>
<p>int Lotto::getZahlen(void)<br />
{<br />
//Zufallszahlen generieren<br />
time_t T_Time; //Systemzeit generieren! Ist zu jeden neuen Instanz anders<br />
int Zufall_Feld_Zahlen[6];<br />
int Zufalls_Zahl; //</p>
<p>srand(time(&amp;T_Time));</p>
<p>for(int i=0; i&lt;6; i++)<br />
{<br />
Zufalls_Zahl=0;<br />
Zufalls_Zahl=(rand()%49)+1; //Zufallszahl von 1-49 generieren<br />
Zufall_Feld_Zahlen[i]=Zufalls_Zahl;<br />
}</p>
<p>return Zufall_Feld_Zahlen[];<br />
}</p>
<p>ich möchte Zufallszahlen in dem Feld generieren und dann mit return an dieser FKT zurückschicken!</p>
<p>void __fastcall TPRLotto::Button2Click(TObject *Sender)<br />
{<br />
int Rueck_Feld_Zahlen[6];</p>
<p>Rueck_Feld_Zahlen[6]=L1-&gt;getZahlen(); //Feld_Zahlen wird Set Zahlen übergeben damit<br />
// das Feld in der Klasse gespeichert<br />
for(int i=0; i&lt;6; i++)<br />
{<br />
Ausgabe1-&gt;Items-&gt;Add(IntToStr(Rueck_Feld_Zahlen[i]));<br />
}</p>
<p>//Eröffnet die Lottoziehung mit Button1 <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 />
Button1-&gt;Enabled=true;<br />
Button2-&gt;Enabled=false;<br />
}</p>
<p>...</p>
<p>Ich bekomme aber komische Zahlen ausgeben. Kann evt einer mir helfen?</p>
<p>Ich bin inmoment viel mit Java beschäftigt und habe denn gespür für C++ verloren.<br />
Ich müsste ein Kopie zurückgeben und dann in ein neues Feld der ausgangsfunktion zu speichern oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932870</guid><dc:creator><![CDATA[JuanPabloIssa]]></dc:creator><pubDate>Sat, 03 Dec 2005 09:28:45 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 09:30:36 GMT]]></title><description><![CDATA[<p>std::vector oder std::list</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932872</guid><dc:creator><![CDATA[tipp]]></dc:creator><pubDate>Sat, 03 Dec 2005 09:30:36 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 09:34:32 GMT]]></title><description><![CDATA[<p>so einfach geht das nicht,</p>
<p>1. hab ich den code jetzt nicht angeschaut ( weil keine CODETAGS! )</p>
<p>2. array zurückgeben geht nicht</p>
<p>Du musst das Array als Parameter ( als Referenz ) übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932876</guid><dc:creator><![CDATA[ajax]]></dc:creator><pubDate>Sat, 03 Dec 2005 09:34:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 09:37:12 GMT]]></title><description><![CDATA[<p>Erstens: time() kann auch mit einem NULL-Zeiger aufgerufen werden <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="😉"
    /> Und srand() solltest du nur einmal am Anfang deines Programmes aufrufen.<br />
Zweitens: Wenn du einer Variable einen konkreten Wert zuweisen willst, kannst du die Initialisierung mit &quot;=0&quot; weglassen <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>Drittens: Deine Funktion wurde so deklariert, daß sie einen einzelnen interger zurückgeben soll. Arrays kann man nur als Pointer oder in einen Struct (z.B. STL-Container) verpackt übergeben:</p>
<pre><code class="language-cpp">//Variante 1: Pointer auf static
int* getZahlen()
{
  static int Zahlen[6];
  //fülle das Array mit Zufallszahlen
  return Zahlen;
}

//Aufruf
int meineZahlen[6];
int*ZahlPtr=getZahlen();
for(int i=0;i&lt;6;++i) meineZahlen[i]=ZahlPtr[i];

//Variante 2: Container (in dem einfachen Beispiel vermutlich unnötiger Overhead):
vector&lt;int&gt; getZahlen()
{
  vector&lt;int&gt; Zahlen(6);
  //fülle den Vektor mit Zufallzahlen
  return Zahlen;
}

//Aufruf
vector&lt;int&gt; meineZahlen=getZahlen();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/932877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932877</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 03 Dec 2005 09:37:12 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 09:38:20 GMT]]></title><description><![CDATA[<p>tipp schrieb:</p>
<blockquote>
<p>std::vector oder std::list</p>
</blockquote>
<p>das sowieso, dass er vector nehmen soll, aber er ist ja am anfang beim lernen, da soll er ruhig die nachteile von arrays erstmal kennenlernen <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/932879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932879</guid><dc:creator><![CDATA[ajax]]></dc:creator><pubDate>Sat, 03 Dec 2005 09:38:20 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 14:11:32 GMT]]></title><description><![CDATA[<p>Danke für die schnelle antwort...</p>
<p>mit Container kenn ich mich noch nicht aus. Aber jetzt hab ich das mit den Zeiger verstanden. Ist aber kompliziert. Bei java gibt es ja keine Zeiger <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 />
Naja gibt hier und da wieder vorteile. Ich selber mag lieber mehr C++.<br />
Kann mir jemand mal das mit dem&quot;Static&quot; erleutern?</p>
<p>Und wie binde ich das mit dem code tag hier ein? [code]? [cpp]?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933114</guid><dc:creator><![CDATA[JuanPabloIssa]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 14:27:20 GMT]]></title><description><![CDATA[<p>JuanPabloIssa schrieb:</p>
<blockquote>
<p>Danke für die schnelle antwort...</p>
<p>mit Container kenn ich mich noch nicht aus. Aber jetzt hab ich das mit den Zeiger verstanden. Ist aber kompliziert. Bei java gibt es ja keine Zeiger <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>Du bist hier auch nicht bei Java - bei C(++) verwendet man Pointer <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>
<blockquote>
<p>Kann mir jemand mal das mit dem&quot;Static&quot; erleutern?</p>
</blockquote>
<p>Klar, &quot;static&quot; bedeutet, daß die Variable nach Ende der Funktion erhlaten bleibt (damit kannst du den zurückgegebenen Pointer noch weiterverwenden) - allerdings überschreibt die Funktion beim nächsten Aufruf das Array wieder, also solltest du die Werte vorher woanders sichern (in meinem Beispiel passiert das in der for()-Schleife).</p>
<blockquote>
<p>Und wie binde ich das mit dem code tag hier ein? [code]? [ cpp]?</p>
</blockquote>
<p>Ich nehme normalerweise cpp-Tags, da werden die Quelltexte auch farbig dargestellt.</p>
<p>PS: zwei Varianten gibt es noch:</p>
<pre><code class="language-cpp">//Variante 3: Pointer auf Heap
int* getZahlen()
{
  int* Zahlen=new int[6];
  //fülle das Array mit Zufallszahlen
  return Zahlen;
}

//Aufruf
int* meineZahlen=getZahlen();
//Arbeiten mit meineZahlen
delete[]meineZahlen;

//Variante 4: Übergabe als Parameter
void getZahlen(int Zahlen[6])
{
  //fülle das übergebene Array
}

//Aufruf
int meineZahlen[6];
getZahlen(meineZahlen);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/933123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933123</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:27:20 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 14:32:49 GMT]]></title><description><![CDATA[<p>Kannst du bitte für vector mal zeigen wie man dann auf die einzelnen Elemente zugreift? Also dessen &quot;Index&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933129</guid><dc:creator><![CDATA[narfus]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:32:49 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 14:36:19 GMT]]></title><description><![CDATA[<p>Genauso wie bei einem Array (vector&lt;&gt; hat dafür extra den []-Operator überladen):</p>
<pre><code class="language-cpp">//Fortsetzung von Aufruf Variante 2:
vector&lt;int&gt; meineZahlen=getZahlen();
for(int i=0;i&lt;6;++i)
  cout&lt;&lt;i+1&lt;&lt;&quot;. Zahl ist &quot;&lt;&lt;meineZahlen[i]&lt;&lt;&quot;.\n&quot;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/933132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933132</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 14:48:46 GMT]]></title><description><![CDATA[<p>was passiert beim vector wenn man ausserhalb des indexes zugreift?<br />
normales array macht ja oft unverersehbare sachen, von garnichts bis hin sogar eines system reboots</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933141</guid><dc:creator><![CDATA[narfus]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:48:46 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 14:51:31 GMT]]></title><description><![CDATA[<p>Das ist genauso unvorhergesehen <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="😉"
    /> (aber du hast beim Vektor noch die Metohde at() - die macht in dem Fall etwas kontrolliertes und wirft eine out_of_range Exception)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933144</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sat, 03 Dec 2005 14:51:42 GMT]]></title><description><![CDATA[<p>das selbe...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933145</guid><dc:creator><![CDATA[.....]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:51:42 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Sun, 04 Dec 2005 19:51:03 GMT]]></title><description><![CDATA[<p>hallo...nochmal muss ich euch nerven. Aber ich krieg das nicht hin. Ich möchte die Länge des Arrays ermitteln.</p>
<p>In java gab es die Methode objekt.lengh in C++ sizeof oder bei char einfach auf /0 abfragen. Aber wie mach ich das auf array von INT s?</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/934260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/934260</guid><dc:creator><![CDATA[JuanPabloIssa]]></dc:creator><pubDate>Sun, 04 Dec 2005 19:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to Ein Array aus einer Funktion zurückgeben! on Mon, 05 Dec 2005 07:55:59 GMT]]></title><description><![CDATA[<p>Gar nicht - das mußt du dir beim Anlegen des Arrays gesondert merken (oder du bleibst beim vector, der kennt seine Größe und kann sie mit size() auch verraten).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/934652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/934652</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 05 Dec 2005 07:55:59 GMT</pubDate></item></channel></rss>