<?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[Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte)]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich bins mal wieder. Ich weiß diesmal nicht ob ich das als Problem ansehen würde, doch ich möchte lieber Gewissheit haben. Und zwar geht es um Rückgabewerte, genauer um die Rückgabe von Zeigern von dynamisch erzeugten Speicherobjekten. Meine Absicht war in den return-Anweisungen die neuen Speicherobjekte zu erzeugen und sofort mit den Werten zu belegen. Zum einen weils kürzer ist und ich finde es ästhetisch ansprechender. Doch ich weiß nicht ob das so zulässig ist</p>
<pre><code class="language-cpp">new int()
</code></pre>
<p>. Das steht in keinem meiner Lehrbücher aber ich dachte mir wenn man Konstruktoren von dynamisch erzeugten Objekten schon so aufruft:</p>
<pre><code class="language-cpp">Klassenname* objektBezeichner = new Klassenname();
</code></pre>
<p>Dann könne man das ja mit int etc evtl. auch so machen. Aber ich frage lieber euch. Ist sicherer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> nicht dass ich unwissend für insgesamt mehrere Elemente Platz geschaffen habe. Weil die Schreibweise ist den dynamisch erzeugten Arrays ja nicht unähnlich und oft gibt es ja mehrere Schreibweisen die den gleichen Effekt haben.<br />
Nun zu meinem Code:</p>
<pre><code class="language-cpp">// main.cpp
#include &lt;iostream&gt;

using namespace std;

int* bigVal(int&amp;, int&amp;);

int main()
{
	int a = 3, b = 5, *c;
	c = bigVal(a, b);
	cout &lt;&lt; *c &lt;&lt; endl;
	delete c;
	return 0;
}

int* bigVal(int&amp; a, int&amp; b)
{
	return (a &gt; b) ? new int(a) : new int(b);
}
</code></pre>
<p>Warum ich mich ausgerechnet dafür entschieden habe, naja also es war mir wichtig, dass man die Variable b nicht jedes mal verändert wenn man mit dem Zeiger *c rumspielt.</p>
<p>Gruß</p>
<p>Infty</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306481/rückgabe-von-zeigern-aus-funktionen-dynamisch-erzeugte-speicherobjekte</link><generator>RSS for Node</generator><lastBuildDate>Fri, 07 Aug 2026 19:50:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306481.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Jul 2012 12:17:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 12:17:05 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich bins mal wieder. Ich weiß diesmal nicht ob ich das als Problem ansehen würde, doch ich möchte lieber Gewissheit haben. Und zwar geht es um Rückgabewerte, genauer um die Rückgabe von Zeigern von dynamisch erzeugten Speicherobjekten. Meine Absicht war in den return-Anweisungen die neuen Speicherobjekte zu erzeugen und sofort mit den Werten zu belegen. Zum einen weils kürzer ist und ich finde es ästhetisch ansprechender. Doch ich weiß nicht ob das so zulässig ist</p>
<pre><code class="language-cpp">new int()
</code></pre>
<p>. Das steht in keinem meiner Lehrbücher aber ich dachte mir wenn man Konstruktoren von dynamisch erzeugten Objekten schon so aufruft:</p>
<pre><code class="language-cpp">Klassenname* objektBezeichner = new Klassenname();
</code></pre>
<p>Dann könne man das ja mit int etc evtl. auch so machen. Aber ich frage lieber euch. Ist sicherer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> nicht dass ich unwissend für insgesamt mehrere Elemente Platz geschaffen habe. Weil die Schreibweise ist den dynamisch erzeugten Arrays ja nicht unähnlich und oft gibt es ja mehrere Schreibweisen die den gleichen Effekt haben.<br />
Nun zu meinem Code:</p>
<pre><code class="language-cpp">// main.cpp
#include &lt;iostream&gt;

using namespace std;

int* bigVal(int&amp;, int&amp;);

int main()
{
	int a = 3, b = 5, *c;
	c = bigVal(a, b);
	cout &lt;&lt; *c &lt;&lt; endl;
	delete c;
	return 0;
}

int* bigVal(int&amp; a, int&amp; b)
{
	return (a &gt; b) ? new int(a) : new int(b);
}
</code></pre>
<p>Warum ich mich ausgerechnet dafür entschieden habe, naja also es war mir wichtig, dass man die Variable b nicht jedes mal verändert wenn man mit dem Zeiger *c rumspielt.</p>
<p>Gruß</p>
<p>Infty</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236869</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:17:05 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 12:28:43 GMT]]></title><description><![CDATA[<p>Infty schrieb:</p>
<blockquote>
<p>new int(a)</p>
</blockquote>
<p>... reserviert Platz für einen Integer, initialisiert den Speicher mit dem Wert von <code>a</code> und gibt die Adresse zurück.</p>
<p>Aber warum willst du das so machen!? Warum ned einfach einen Integer zurückgeben?</p>
<p>Infty schrieb:</p>
<blockquote>
<p>[...] es war mir wichtig, dass man die Variable b nicht jedes mal verändert wenn man mit dem Zeiger *c rumspielt.</p>
</blockquote>
<p>What? <code>c</code> zeigt zu keiner Zeit auf <code>b</code> ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236880</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:28:43 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 12:31:59 GMT]]></title><description><![CDATA[<p>Du brauchst hier weder new noch delete und die Verwendung hier ist (wie so oft) ein schwerer Designfehler.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;

int main()
{
 int a = 3, b = 5;
 int c = std::max(a,b);
 std::cout &lt;&lt; c &lt;&lt; '\n';
}
</code></pre>
<p>Dabei wird std::max (stark vereinfacht!) ungefähr wie folgender Code aussehen und deine eigenen Funktionen sollten sich an dieses Vorbild halten:</p>
<pre><code class="language-cpp">int max(int a, int b)
{
 return (a &gt; b) ? a : b;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2236885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236885</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 12:34:25 GMT]]></title><description><![CDATA[<p>Ah danke, gut das beruhigt mich. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Also ich finde das attraktiver und ich arbeite lieber mit Zeigern. Keine Ahnung warum macht einfach Spaß xD Auch wenn sich das bescheuert anhört. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ja in dem Beispiel nicht, das habe ich umgeschrieben zu dem Code wie ich ihn gepostet habe. Vorher konnte ich beliebig durch Manipulation von *c die Variable b verändern und ich fand das nervig. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Infty</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236886</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:34:25 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 12:50:44 GMT]]></title><description><![CDATA[<p>ja so kleine spielereien können gut spass bereiten. aber spass macht es irgendwann nicht mehr, wenn du lieber mit zeigern statt automatischen variablen in grossen projekten arbeitest, dann wird da ganz schnell mal ein hässliches fluchen draus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236900</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 30 Jul 2012 12:50:44 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 13:01:53 GMT]]></title><description><![CDATA[<p>Mhm achso ja da hast du Recht damit habe ich bedauerlicherweise schonmal bekanntschaft gemacht mit dem &quot;Fluchen&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Mir geht es mit den Spielereien vielmehr darum alles Mögliche über Zeiger und Referenzen zu lernen. Wenn man nur die Beispiele aus den Büchern abtippt und compiliert lernt man nichts wie ich finde. Stattdessen denke ich mir für alle Sprachfeatures eigene Beispiele aus, die nach Möglichkeit alles Mögliche miteinander kombinieren etc. und versuche das umzusetzen. Ich denke mal man lernt durch Experimentieren am ehesten.</p>
<p>Aber eine Frage hätte ich an SeppJ: Was genau meinst du mit Designfehler? Gibt es etwa spezielle Richtlinien wie was am besten auszusehen hat an Code?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236907</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:01:53 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 13:11:47 GMT]]></title><description><![CDATA[<p>Infty schrieb:</p>
<blockquote>
<p>Aber eine Frage hätte ich an SeppJ: Was genau meinst du mit Designfehler? Gibt es etwa spezielle Richtlinien wie was am besten auszusehen hat an Code?</p>
</blockquote>
<p>Ja. Man macht sich das Leben nicht unnötig schwer. Explizite new und delete fallen da ganz eindeutig drunter. Außerdem ist es nicht nur programmierisch unnötig umständlich, es wird auch unnötig umständlicher Code erzeugt dadurch, welcher dann wesentlich langsamer ist.</p>
<p>Wenn überhaupt new und delete (d.h. wenn es eben absolut nötig ist, wodurch die Performancenachteile nicht relevant sind), dann kapselt man sie schön in Klassen mit RAII, wodurch die programmiererischen Nachteile wegfallen, weil diese dann genau so leicht zu handhaben sind, wie automatische Objekte. Das kann man einmal selber machen, wenn man Lust hat (das würde dir sicher Spaß machen). Danach benutzt man die C++-Standardbibliothek, damit man das nicht jedes Mal alles neu schreiben muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236916</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 13:23:56 GMT]]></title><description><![CDATA[<p>Achso ja das kann ich nachvollziehen. Wäre es eine gute Anlaufstelle sich dazu aus der Tutorialsektion die C++ Richtlinien anzuschauen? Habe da eben mal durchgestöbert. Nun ich führe mir derzeit das Buch &quot;C++ von A bis Z&quot; zu gemüte, nur ich möchte mir nicht zu viel auf einmal anschauen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Wie meinst du das mit RAll was bedeutet das?</p>
<p>Infty</p>
<p>PS: Ich werd mir gleich mal nen Account machen. Ist echt toll hier <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/2236926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236926</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:23:56 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 13:27:38 GMT]]></title><description><![CDATA[<p>Infty schrieb:</p>
<blockquote>
<p>Nun ich führe mir derzeit das Buch &quot;C++ von A bis Z&quot; zu gemüte, [...]</p>
</blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>[...] Normalerweise sind solche Titel, die einem große Versprechen machen (von A bis Z, in 21 Tagen, ...) das Papier nicht wert, auf dem sie gedruckt sind. [...]</p>
</blockquote>
<p>Infty schrieb:</p>
<blockquote>
<p>Wie meinst du das mit RAll was bedeutet das?</p>
</blockquote>
<p>Das verrät dir Wikipedia nachdem du bei einer Googlesuche nach dem Stichwort auf das erste oder zweite Ergebnis geklickt hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236928</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:27:38 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 13:27:21 GMT]]></title><description><![CDATA[<p>Infty schrieb:</p>
<blockquote>
<p>Nun ich führe mir derzeit das Buch &quot;C++ von A bis Z&quot; zu gemüte, nur ich möchte mir nicht zu viel auf einmal anschauen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Das beste was du tun kannst, ist dieses Buch nicht weiter anzuschauen:<br />
<a href="http://www.c-plusplus.net/forum/272350" rel="nofollow">http://www.c-plusplus.net/forum/272350</a></p>
<p>Das wundert mich nicht im geringsten, dass dort kein guter Stil gelehrt wird. Zu einem guten Buch gehört das dazu. Schau mal in die Bücherliste in meiner Signatur, dort findest du gute Bücher, die dich davor bewahren, dir schlechte Techniken anzugewöhnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236929</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 13:40:11 GMT]]></title><description><![CDATA[<p>Oh das ist interessant, hätte nicht gedacht dass die Bücher son Müll sind. Habe &quot;C von A bis Z&quot; und &quot;C++ von A bis Z&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Wollte die damals zum Geburtstag haben, weil ich die für gute Bücher hielt o.O Das würde auch erklären warum mein lehrer mir manchmal vorwirft ich würde umständlichen Code schreiben, den im Endeffekt kaum jemand versteht.</p>
<p>Danke SeppJ, das ist eine sehr Umfangreiche Liste wie mir scheint. Wie schaut es mit den Tutorials hier auf der Webseite aus? Damit ich etwas habe womit ich gescheit arbeiten kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236932</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:40:11 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 13:45:28 GMT]]></title><description><![CDATA[<p>Infty schrieb:</p>
<blockquote>
<p>Danke SeppJ, das ist eine sehr Umfangreiche Liste wie mir scheint. Wie schaut es mit den Tutorials hier auf der Webseite aus? Damit ich etwas habe womit ich gescheit arbeiten kann.</p>
</blockquote>
<p>Vollständige Onlinetutorials, um eine Sprache von Grundauf neu zu lernen, kannst du in der Regel vergessen. Die werden meistens von Anfängern geschreiben, die gerade ein oder zwei Bücher gelesen haben und ihr Wissen nun weiter geben wollen. Die richtigen Experten schreiben gleich richtige Bücher.</p>
<p>Tutorials sind eher etwas für spezielle Unterthemen, z.B hier auf der Seite die Magazinartikel:<br />
<a href="http://www.c-plusplus.net/forum/f55" rel="nofollow">http://www.c-plusplus.net/forum/f55</a><br />
Da wird aber meistens vorausgesetzt, dass man die Grundlagen schon kann und nun über ein bestimmtes Thema mehr lernen möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236935</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:45:28 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 13:50:45 GMT]]></title><description><![CDATA[<p>Das ist mir klar, dass man richtige Bücher lesen sollte um eine Sprache zu erlernen. Außer den Büchern von Jürgen Wolf habe ich nur leider nichts greifbares in meiner Nähe. Meine Intention war mich solange mit anspruchsvollen Tutorials über Wasser zu halten bis ich eins bestellt habe bzw. es dann da ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236938</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Mon, 30 Jul 2012 13:50:45 GMT</pubDate></item><item><title><![CDATA[Reply to Rückgabe von Zeigern aus Funktionen(dynamisch erzeugte Speicherobjekte) on Mon, 30 Jul 2012 14:21:21 GMT]]></title><description><![CDATA[<p>Infty schrieb:</p>
<blockquote>
<p>Das ist mir klar, dass man richtige Bücher lesen sollte um eine Sprache zu erlernen. Außer den Büchern von Jürgen Wolf habe ich nur leider nichts greifbares in meiner Nähe. Meine Intention war mich solange mit anspruchsvollen Tutorials über Wasser zu halten bis ich eins bestellt habe bzw. es dann da ist.</p>
</blockquote>
<p>Du könntest Thinking in C++ lesen, falls du Englisch spricht (früher oder später wirst du sowieso Englisch brauchen, wenn du weiter willst, denn die fortgeschrittenen Literatur gibt es nicht auf Deutsch). Das ist ein freies Ebook und ziemlich gut,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236947</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 30 Jul 2012 14:21:21 GMT</pubDate></item></channel></rss>