<?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[Pointer aus Funktion, dynamisch]]></title><description><![CDATA[<p>Hallo!<br />
Zunächst mal habe ich jetzt eine gute Stunde gesurft, aber nichts passendes gefunden, hoffe Ihr könnt mir helfen.<br />
Und zwar habe ich ein Programm geschrieben, dass soweit funktioniert.<br />
Also eine Funktion mit int* in der Funktion ein dynamisches array erzeugt;<br />
dieses dann befüllt; wenn ich es mir ausgeben lasse(in der Funktion), passt alles;<br />
Mein Problem ist: wenn ich dass dynamisch erzeugte Array an die Main funktion retouniere, fange ich es folgendermaßen auf:<br />
int *s = fkt(übergeben Parameter);<br />
passt auch alles;<br />
NUR sobald ich cout &lt;&lt; *s; schreibe verändern sich alle Werte nichts stimmt mehr;<br />
als Bsp: Am Anfang bestimme ich die Länge des arrays (integer!) ok Länge 10;<br />
sobald ich weiter unten eben dieses cout &lt;&lt; *s; schreibe auf einmal stimmt nicht mal mehr die Länge gar nichts mehr?!;<br />
Danke für die Hilfe!</p>
<pre><code>int arr[] = {1,2,5,7,4,9,2,4,3,1};
  int laenge=0;
  for (;arr[laenge];laenge++);
  cout &lt;&lt; laenge &lt;&lt; endl;
  int kopie=laenge;
  int *s = gerade(arr,laenge,kopie);
  cout &lt;&lt; &quot;Neue Länge: &quot; &lt;&lt; kopie &lt;&lt; endl; 
  //	cout &lt;&lt; *s &lt;&lt; &quot; &quot;;  
 // delete s;
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322184/pointer-aus-funktion-dynamisch</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 10:31:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322184.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Dec 2013 10:07:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Tue, 10 Dec 2013 10:07:47 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Zunächst mal habe ich jetzt eine gute Stunde gesurft, aber nichts passendes gefunden, hoffe Ihr könnt mir helfen.<br />
Und zwar habe ich ein Programm geschrieben, dass soweit funktioniert.<br />
Also eine Funktion mit int* in der Funktion ein dynamisches array erzeugt;<br />
dieses dann befüllt; wenn ich es mir ausgeben lasse(in der Funktion), passt alles;<br />
Mein Problem ist: wenn ich dass dynamisch erzeugte Array an die Main funktion retouniere, fange ich es folgendermaßen auf:<br />
int *s = fkt(übergeben Parameter);<br />
passt auch alles;<br />
NUR sobald ich cout &lt;&lt; *s; schreibe verändern sich alle Werte nichts stimmt mehr;<br />
als Bsp: Am Anfang bestimme ich die Länge des arrays (integer!) ok Länge 10;<br />
sobald ich weiter unten eben dieses cout &lt;&lt; *s; schreibe auf einmal stimmt nicht mal mehr die Länge gar nichts mehr?!;<br />
Danke für die Hilfe!</p>
<pre><code>int arr[] = {1,2,5,7,4,9,2,4,3,1};
  int laenge=0;
  for (;arr[laenge];laenge++);
  cout &lt;&lt; laenge &lt;&lt; endl;
  int kopie=laenge;
  int *s = gerade(arr,laenge,kopie);
  cout &lt;&lt; &quot;Neue Länge: &quot; &lt;&lt; kopie &lt;&lt; endl; 
  //	cout &lt;&lt; *s &lt;&lt; &quot; &quot;;  
 // delete s;
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370902</guid><dc:creator><![CDATA[c++hilfe_)]]></dc:creator><pubDate>Tue, 10 Dec 2013 10:07:47 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Tue, 10 Dec 2013 10:15:05 GMT]]></title><description><![CDATA[<p>Die Schleife im Code ist aequivalent zu</p>
<pre><code>for (; arr[laenge] != 0 ;laenge++); 
   cout &lt;&lt; laenge &lt;&lt; endl;
</code></pre>
<p>Und erzeugt undefiniertes Verhalten.<br />
Was du eigentlich willst, ist</p>
<pre><code>int laenge = sizeof(arr)/sizeof(*arr);
</code></pre>
<pre><code>int kopie=laenge;
  int *s = gerade(arr,laenge,kopie);
</code></pre>
<p>Wozu die &quot;Kopie&quot;? Ist der dritte Parameter eine Referenz?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370903</guid><dc:creator><![CDATA[Arcoth_logoff]]></dc:creator><pubDate>Tue, 10 Dec 2013 10:15:05 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Tue, 10 Dec 2013 10:16:08 GMT]]></title><description><![CDATA[<p>Alles wegwerfen, stattdessen std::vector oder ähnliche Container nutzen? Das was du jetzt versuchst ist doch nur eine ziemlich schlechte Kopie dieser Klassen aus der Standardbibliothek.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370905</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 10 Dec 2013 10:16:08 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Tue, 10 Dec 2013 10:26:58 GMT]]></title><description><![CDATA[<p>Arcoth_logoff schrieb:</p>
<blockquote>
<p>Und erzeugt undefiniertes Verhalten.<br />
Was du eigentlich willst, ist</p>
<pre><code>int laenge = sizeof(arr)/sizeof(*arr);
</code></pre>
</blockquote>
<p>Nein, das will er auch nicht, denn es wird nicht klappen.</p>
<p>Entweder std::vector oder wenn nicht, dann std::array</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370910</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 10 Dec 2013 10:26:58 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Tue, 10 Dec 2013 11:27:37 GMT]]></title><description><![CDATA[<p>Hi, danke für die schnelle Antworten.<br />
Leider darf ich solche vordefinierten Klassen nicht verwenden;<br />
Mein Problem liegt darin, dass sobald ich, das cout *s ausgebe bekomme ich die falsche Länge und somit ist alles in der Funktion auch falsch. ja dritter Parameter ist eine Referenz;<br />
ich verstehe nicht wie sich das cout statement darauf auswirkt, dass die Länge falsch bestimmt wird;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370925</guid><dc:creator><![CDATA[c++hilfe_)]]></dc:creator><pubDate>Tue, 10 Dec 2013 11:27:37 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Tue, 10 Dec 2013 11:28:56 GMT]]></title><description><![CDATA[<p>Wenn ich die Länge bestimme, so wie ich es gemacht habe bekomme ich Länge 10;<br />
Sobald ich unten cout &lt;&lt; *s schreibe, gibt er mir oben als Länge 11 aus, wieso?;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370926</guid><dc:creator><![CDATA[c++hilfe_)]]></dc:creator><pubDate>Tue, 10 Dec 2013 11:28:56 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Tue, 10 Dec 2013 11:38:20 GMT]]></title><description><![CDATA[<p>Deine for-Schleife ermittelt nicht die Länge von arr, sondern zählt so lange, bis sie eine Null auf dem Stack findet oder das Programm von der Runtime abgeschossen wird. Im einen Fall liegt zufällig eine Null(länge?) vor arr, im anderen eben nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370931</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Tue, 10 Dec 2013 11:38:20 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Tue, 10 Dec 2013 21:25:19 GMT]]></title><description><![CDATA[<p>Ja hast Recht achhh danke <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/2371051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371051</guid><dc:creator><![CDATA[c++_)]]></dc:creator><pubDate>Tue, 10 Dec 2013 21:25:19 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Tue, 10 Dec 2013 21:26:16 GMT]]></title><description><![CDATA[<p>Aber etwas verwirren tuts mich trotzdem, dass nur durch ein cout statement der stack so verändert wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371052</guid><dc:creator><![CDATA[c++_)]]></dc:creator><pubDate>Tue, 10 Dec 2013 21:26:16 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer aus Funktion, dynamisch on Wed, 11 Dec 2013 18:25:07 GMT]]></title><description><![CDATA[<p>c++_) schrieb:</p>
<blockquote>
<p>Aber etwas verwirren tuts mich trotzdem, dass nur durch ein cout statement der stack so verändert wird?</p>
</blockquote>
<p>Was heißt hier nur? Das ist ein normaler Funktionsaufruf und wenn du den ganzen Code hinter so einer Bildschirmausgabe selbst schreiben müsstest, dann wärst du Monate, eher Jahre beschäftigt. Selbst wenn man dir freundlicherweise das Schreiben von involvierter Firmware und Gerätetreiber erlassen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2371213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2371213</guid><dc:creator><![CDATA[xaxaxa]]></dc:creator><pubDate>Wed, 11 Dec 2013 18:25:07 GMT</pubDate></item></channel></rss>