<?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[Frage zu Rückgabewert]]></title><description><![CDATA[<p>Hallo wieso krieg ich es hin das mir hier der String Hallo ausgeben wird und nicht nur das H ?</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#include &lt;iostream&gt;
using namespace std;

char * func ();

int main(int argc, char* argv[])
{

char *s=0;
char *str=&quot;0&quot;;
str = func();

cout&lt;&lt;  *str ;

system(&quot;PAUSE&quot;);
}
//---------------------------------------------------------------------------

char * func ()
{
char var[7] = &quot;Hallo&quot;;

return var;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/287284/frage-zu-rückgabewert</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 13:06:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287284.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 May 2011 17:25:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:25:34 GMT]]></title><description><![CDATA[<p>Hallo wieso krieg ich es hin das mir hier der String Hallo ausgeben wird und nicht nur das H ?</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#include &lt;iostream&gt;
using namespace std;

char * func ();

int main(int argc, char* argv[])
{

char *s=0;
char *str=&quot;0&quot;;
str = func();

cout&lt;&lt;  *str ;

system(&quot;PAUSE&quot;);
}
//---------------------------------------------------------------------------

char * func ()
{
char var[7] = &quot;Hallo&quot;;

return var;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2068608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068608</guid><dc:creator><![CDATA[omg__]]></dc:creator><pubDate>Wed, 25 May 2011 17:25:34 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:27:24 GMT]]></title><description><![CDATA[<p>Bitte nutze <code>std::string</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068611</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Wed, 25 May 2011 17:27:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:27:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">cout&lt;&lt;str;
</code></pre>
<p>Und nimm eine andere IDE. DevC++ ist nicht gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068610</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 25 May 2011 17:27:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:28:31 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Und nimm eine andere IDE. DevC++ ist nicht gut.</p>
</blockquote>
<p>Woher weisst du das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068612</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Wed, 25 May 2011 17:28:31 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:29:48 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Und nimm eine andere IDE. DevC++ ist nicht gut.</p>
</blockquote>
<p>Woher weisst du das?</p>
</blockquote>
<p>Unter anderem hier her: <a href="http://www.c-plusplus.net/forum/237002" rel="nofollow">http://www.c-plusplus.net/forum/237002</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068614</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 25 May 2011 17:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:30:12 GMT]]></title><description><![CDATA[<p>Das was du da machst ist ziemlich gefährlich. Du gibst die Adresse von einem lokalen Objekt zurück. Wenn das Programm also läuft, dann ist das einfach Glück.</p>
<p>Benutz doch std::string</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

std::string func ();

int main(int argc, char* argv[])
{
	std::string str=&quot;0&quot;;

	str = func();

	cout&lt;&lt; str;

	system(&quot;PAUSE&quot;);
}
//---------------------------------------------------------------------------

std::string func ()
{
	std::string var = &quot;Hallo&quot;;

	return var;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2068615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068615</guid><dc:creator><![CDATA[jklj]]></dc:creator><pubDate>Wed, 25 May 2011 17:30:12 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:32:37 GMT]]></title><description><![CDATA[<p>Oh, Entschuldigung. Ich meinte natürlich, woher volkard weiss, dass omg__ Dev-C++ nutzt. Die Tatsache dass Dev-C++ Müll ist, ist offensichtlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068617</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Wed, 25 May 2011 17:32:37 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:31:09 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Und nimm eine andere IDE. DevC++ ist nicht gut.</p>
</blockquote>
<p>Woher weisst du das?</p>
</blockquote>
<p>Oder hier:<br />
<a href="http://de.wikipedia.org/wiki/Dev-C%2B%2B" rel="nofollow">http://de.wikipedia.org/wiki/Dev-C%2B%2B</a></p>
<p>Aktuelle Version 4.9.9.2<br />
(22. Februar 2005)</p>
<p>Veraltet. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068618</guid><dc:creator><![CDATA[kiouio]]></dc:creator><pubDate>Wed, 25 May 2011 17:31:09 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:35:13 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe @ Volkard ich benutze gar kein Dev C++. Sondern RAD Studios 2007 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068622</guid><dc:creator><![CDATA[omg__]]></dc:creator><pubDate>Wed, 25 May 2011 17:35:13 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:37:46 GMT]]></title><description><![CDATA[<p>Ach hab noch eine Frage.</p>
<p>Wofür schreibt man std::string str=&quot;0&quot;; ?</p>
<p>Ich benutze doch using namespace std; oder ist das schlecht ?</p>
<p>Ich weiss halt nicht was der Nachteil dabei sein könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068624</guid><dc:creator><![CDATA[omg__]]></dc:creator><pubDate>Wed, 25 May 2011 17:37:46 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:39:13 GMT]]></title><description><![CDATA[<p>omg__ schrieb:</p>
<blockquote>
<p>Wofür schreibt man std::string str=&quot;0&quot;; ?</p>
</blockquote>
<p>Für nichts.</p>
<p>omg__ schrieb:</p>
<blockquote>
<p>Ich benutze doch using namespace std; oder ist das schlecht ?</p>
</blockquote>
<p>Geschmackssache. Ich vermeide es, da es nur wenig Vorteil bringt und Bezeichnerkonflikte hervorrufen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068625</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Wed, 25 May 2011 17:39:13 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:43:22 GMT]]></title><description><![CDATA[<p>Hier die aufgepepte Version:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; //Für Ein- und Ausgabe
#include &lt;string&gt; //Für Zeichenketten
std::string func(); //Vorwärtsdeklaration der Funktion
int main() //Hauptfunktion ohne Parameter, da ohnehin nicht genutzt
{ 
  std::string Str(func()); //Konstruktoraufruf statt Zuweisung
  std::cout &lt;&lt; Str; //Ausgabe
  std::cin.get(); //Auf Eingabe warten, bitte nutzte kein system
}
std::string func() //Funktionsdefinition
{ 
  return &quot;Hallo&quot;; //Implizite Konvertierung von const char* nach std::string
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2068630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068630</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Wed, 25 May 2011 17:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 17:55:37 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Und nimm eine andere IDE. DevC++ ist nicht gut.</p>
</blockquote>
<p>Woher weisst du das?</p>
</blockquote>
<p>Wenn du in Dev ein Console-Application-rojekt erstellst, dann werden u.a. diese</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main(int argc, char *argv[])
{
    system(&quot;PAUSE&quot;);
}
</code></pre>
<p>Zeilen automatisch erstellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068641</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 25 May 2011 17:55:37 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 19:35:34 GMT]]></title><description><![CDATA[<p>std::string Str(func()); &lt;-- Ist mit einem Konstruktor besser als mit einer Zuweisung ?</p>
<p>Bei Wikipedia steht:<br />
<a href="http://de.wikipedia.org/wiki/Konstruktoren_und_Destruktoren" rel="nofollow">http://de.wikipedia.org/wiki/Konstruktoren_und_Destruktoren</a><br />
Die Aufgabe von Konstruktoren ist, Objekte in einen definierten Anfangszustand zu bringen und so benötigte Ressourcen zu reservieren, insofern diese zum Zeitpunkt der Objekterstellung bereits bekannt sind.</p>
<p>Womit wird denn dann Str hier initialisiert ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068728</guid><dc:creator><![CDATA[omg__]]></dc:creator><pubDate>Wed, 25 May 2011 19:35:34 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 19:39:01 GMT]]></title><description><![CDATA[<p>omg__ schrieb:</p>
<blockquote>
<p>std::string Str(func()); &lt;-- Ist mit einem Konstruktor besser als mit einer Zuweisung ?</p>
</blockquote>
<pre><code class="language-cpp">std::string foo1(&quot;Hallo&quot;);
std::string foo2 = &quot;Hallo&quot;;
</code></pre>
<p>Hier ist zweimal exakt das selbe geschehen.</p>
<pre><code class="language-cpp">std::string foo;
foo = &quot;Hallo&quot;;
</code></pre>
<p>Hier wird erst der Standard-Konstruktor (Parameterlos oder mit Default-Werten) aufgerufen und dann der Zuweisungsoperator.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068731</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Wed, 25 May 2011 19:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 19:56:33 GMT]]></title><description><![CDATA[<p>Aufrufe für:<br />
std::string foo;<br />
foo = &quot;Hallo&quot;;<br />
1. Standart Konstruktor<br />
2. Zuweisungsoperator</p>
<p>Also ist hier std::string Str(func());</p>
<p>Str mit dem String Hallo initialisiert ?<br />
Wird hier dann nur der Standard Konstruktor aufgerufen so das der Zuweisungsoperator nicht mehr aufgerufen wird und der Prozessor sich ein Schritt sparen kann ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068753</guid><dc:creator><![CDATA[omg__]]></dc:creator><pubDate>Wed, 25 May 2011 19:56:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 20:01:16 GMT]]></title><description><![CDATA[<p>omg__ schrieb:</p>
<blockquote>
<p>Str mit dem String Hallo initialisiert ?<br />
Wird hier dann nur der Standard Konstruktor aufgerufen so das der Zuweisungsoperator nicht mehr aufgerufen wird und der Prozessor sich ein Schritt sparen kann ?</p>
</blockquote>
<p>Nein, in der Funktion wird der char*-Konstruktor aufgerufen, um eine temporäre Variable mit dem Literal zu initialisieren. In der Zeile <code>std::string Str(func());</code> wird der Kopierkonstruktor verwendet, um deine Variable &quot;Str&quot; mit dem Inhalt der temporären Variablen zu füllen.<br />
(wobei der Compiler auch das Recht hat, die Kopie wegzuoptimieren)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068756</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 25 May 2011 20:01:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 20:03:48 GMT]]></title><description><![CDATA[<p>omg__ schrieb:</p>
<blockquote>
<p>Str mit dem String Hallo initialisiert ?</p>
</blockquote>
<p>Ja (indirekt).</p>
<pre><code class="language-cpp">std::string Foo1; //Standardkonstruktor
Foo1 = &quot;Hallo&quot;; //Zuweisungsoperator
std::string Foo2(Foo1); //Kopierkonstruktor
std::string Foo3(&quot;Hallo&quot;); //Konstruktor mit const char* als Parameter
std::string Foo4 = &quot;Hallo&quot;; //Sieht nach Zuweisungsoperator aus ist aber Konstruktor mit const char* als Parameter
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2068759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068759</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Wed, 25 May 2011 20:03:48 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Wed, 25 May 2011 21:07:16 GMT]]></title><description><![CDATA[<p>Danke für die Antworten ich werd mir glaub ich das ganze auch nochmal im Disassembler mit verschiedenen Compiler Einstellungen anschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068779</guid><dc:creator><![CDATA[omg__]]></dc:creator><pubDate>Wed, 25 May 2011 21:07:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabewert on Thu, 26 May 2011 00:08:40 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>omg__ schrieb:</p>
<blockquote>
<p>Str mit dem String Hallo initialisiert ?</p>
</blockquote>
<p>Ja (indirekt).</p>
<pre><code class="language-cpp">std::string Foo1; //Standardkonstruktor
Foo1 = &quot;Hallo&quot;; //Zuweisungsoperator
std::string Foo2(Foo1); //Kopierkonstruktor
std::string Foo3(&quot;Hallo&quot;); //Konstruktor mit const char* als Parameter
std::string Foo4 = &quot;Hallo&quot;; //Sieht nach Zuweisungsoperator aus ist aber Konstruktor mit const char* als Parameter
</code></pre>
</blockquote>
<p>Bei dem letzten Fall wird zwar in der Praxis normalerweise wie du sagtest nur der Konstruktor mit entsprechendem Parameter aufgerufen, aber fest von ausgehen kannst du nicht. Denn eg ist es eine Copy Initialization und keine direct Initialization. Sprich es wird ein temporäres objekt erstellt welches dann mittels kopierkonstruktor dein objekt initialisiert. Aber wie gesagt Compiler dürfen dies im Normalfall in eine direct Initialization umwandeln. Gab hier aber auch schon genug threads dazu, wollte es nur erwähnen;-)</p>
<p>LG freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2068806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2068806</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Thu, 26 May 2011 00:08:40 GMT</pubDate></item></channel></rss>