<?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[Funktions Zeiger]]></title><description><![CDATA[<p>Hallo wofür kann eine Funktion einen Zeiger zurückgeben?<br />
Das würde doch eigentlich nur bei static Variablen Sinn machen oder?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows&gt;
using namespace std;

int *f ( )
{
int a = 3;
	return &amp;a; // Fehler: a ist beim verlassen der Funktion nicht mehr gültig
}

int main()
{

int *b;

b = f();

cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; *b &lt;&lt; endl;

system(&quot;PAUSE&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/299966/funktions-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 01:28:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/299966.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Feb 2012 11:39:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 11:39:14 GMT]]></title><description><![CDATA[<p>Hallo wofür kann eine Funktion einen Zeiger zurückgeben?<br />
Das würde doch eigentlich nur bei static Variablen Sinn machen oder?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows&gt;
using namespace std;

int *f ( )
{
int a = 3;
	return &amp;a; // Fehler: a ist beim verlassen der Funktion nicht mehr gültig
}

int main()
{

int *b;

b = f();

cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; *b &lt;&lt; endl;

system(&quot;PAUSE&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2184243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184243</guid><dc:creator><![CDATA[CppZgr]]></dc:creator><pubDate>Wed, 22 Feb 2012 11:39:14 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 11:46:03 GMT]]></title><description><![CDATA[<p>Eigentlich immer, außer bei lokalen Variablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184248</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 22 Feb 2012 11:46:03 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 11:52:01 GMT]]></title><description><![CDATA[<p>Du kannst in der Funktion Objekte auf dem Heap erzeugen. Auch, wenn es nicht sonderlich schön und sicher ist:</p>
<pre><code class="language-cpp">myObject* CreateObject()
{
  myObject* result = new myObject();
  // mache diverse Dinge mit myObject
  return result;
}
</code></pre>
<p>Du musst das Objekt, auf das der Zeiger zeigt, aber gar nicht selbst erzeugen. Du könntest bspw. eine Suchfunktion erstellen, deren Ergebnis auf das gewünschte Element zeigt (ja, auch das ginge eleganter).</p>
<p>Oder du gewährst über Zeiger Zugriff auf Member eines Objektes (jaja, das ist auch kein toller Stil):</p>
<pre><code class="language-cpp">Auto meinAuto(&quot;Mercedes SLK&quot;);
Kofferraum* meinKofferraum = meinAuto.GetKofferraum();
meinKofferraum-&gt;oeffne();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2184252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184252</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 22 Feb 2012 11:52:01 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 11:56:10 GMT]]></title><description><![CDATA[<p>Das machst du dann, wenn ein Objekt bereits vor dem Aufruf der Funktion existiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184254</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 22 Feb 2012 11:56:10 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 12:02:16 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<p>Das machst du dann, wenn ein Objekt bereits vor dem Aufruf der Funktion existiert.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Weil:<br />
static -&gt; Referenz<br />
Objekt wird erzeugt* -&gt; Smartpointer<br />
Getter, Suchfunktionen o.ä. -&gt; Pointer.</p>
<p>* Bei einer factory nimmt man vielleicht auch rohe Pointer, aber das würde ich mal als regelbestätigende Ausnahme sehen. <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/2184255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184255</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 22 Feb 2012 12:02:16 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 12:12:25 GMT]]></title><description><![CDATA[<p>Also kann ich mir merken:</p>
<p>Lokale Variable in einer Funktion (Zeiger zurückgeben ist schlecht)<br />
Lokale Statische Variable in einer Funktion (Zeiger zurückgeben ist okay)<br />
Global Variable (Funktion darf ruhig einen Zeiger zurückgeben)</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows&gt;
using namespace std;

int glob;

int *f ( )
{
glob = 8;
return &amp;glob; // Ok glob ist Global
}

int *f_1 ( )
{
int v;
return &amp;v; // Schlecht v ist beim austritt aus der Funktion nicht mehr gültig
}

int *f_2( )
{
static v;
return &amp;v; // Ok wegen statischer Variable
}

int main()
{

int *b;
int *c;
int *d;

b = f();
c = f_1();
d = f_2();

cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; *b &lt;&lt; endl;
cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; *c &lt;&lt; endl; // Gibt bei mir jetzt auch Müll aus ^^
cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; *d &lt;&lt; endl;

system(&quot;PAUSE&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2184260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184260</guid><dc:creator><![CDATA[CppZgr]]></dc:creator><pubDate>Wed, 22 Feb 2012 12:12:25 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 12:17:32 GMT]]></title><description><![CDATA[<p>CppZgr schrieb:</p>
<blockquote>
<p>Lokale Statische Variable in einer Funktion (Zeiger zurückgeben ist okay)<br />
Global Variable (Funktion darf ruhig einen Zeiger zurückgeben)</p>
</blockquote>
<p>Nur dass da Referenzen üblicherweise mehr Sinn machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184263</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 22 Feb 2012 12:17:32 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 12:25:18 GMT]]></title><description><![CDATA[<p>Frage mich übrigens warum überhaupt in dem Fall einen Pointer zurückgeben, warum nicht einfach der Funktion einen Pointer geben un den in der Funktion mit anderen Werten befüllen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

void changevariable(char*);

void changevariable(char* ptr)
{
	*ptr = 'b'; // wir schreiben in die speicherzelle mit der adresse des pointers einen anderen buchstaben in diesem falle b
}

int main(int argc, char* argv[])
{
	char variable = 'a'; // wir schreiben den buchstaben a in die variable
	char* pointer = &amp;variable; // wir schreiben die adresse der variable in den pointer 
	changevariable(pointer); // wir übergeben den pointer (adresse) an die funktion
	cout &lt;&lt; variable; // unsere ausgabe ergibt nun b weil wir den inhalt an der speicheradresse geändert haben 
	system(&quot;pause&quot;);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2184268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184268</guid><dc:creator><![CDATA[Videonauth]]></dc:creator><pubDate>Wed, 22 Feb 2012 12:25:18 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 12:26:56 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Getter, Suchfunktionen o.ä. -&gt; Pointer.</p>
</blockquote>
<p>Du gibst einen Zeiger auf das Attribut bei Getter zurück? Oder wie meinst du das?</p>
<p>CppZgr schrieb:</p>
<blockquote>
<p>Lokale Variable in einer Funktion (Zeiger zurückgeben ist schlecht)</p>
</blockquote>
<p>Ja, das ist ganz schlecht, weil die Variable am Ende der Funktion zerstört wird.</p>
<p>CppZgr schrieb:</p>
<blockquote>
<p>Global Variable (Funktion darf ruhig einen Zeiger zurückgeben)</p>
</blockquote>
<p>Das macht keinen Sinn, immerhin ist sie global. Da kann eh immer jeder drauf zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184269</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 22 Feb 2012 12:26:56 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 12:38:50 GMT]]></title><description><![CDATA[<p>@Gugelmoser das dass kein Sinn macht ist mir klar. Aber es ging mir halt um den Stern nachdem Datentyp.</p>
<p>Aber nochmal kurz</p>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Nur dass da Referenzen üblicherweise mehr Sinn machen.</p>
</blockquote>
<p>Meintest du das so mit der Referenz?<br />
Weil da ist doch jetzt kein unterschied beide Funktionen sind intern gleich.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows&gt;
using namespace std;

int glob;
int glob_2;

int &amp;f ( )  // Mit Referenz
{
glob = 8;
return glob;
}

int *f_2 ( ) // Mit Zeiger
{
glob_2 = 1;
return &amp;glob_2; 
}

int main()
{

int b;
int *c;

b = f();
c = f_2();

cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; b &lt;&lt; endl;
cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; *c &lt;&lt; endl;

system(&quot;PAUSE&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2184274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184274</guid><dc:creator><![CDATA[CppZgr]]></dc:creator><pubDate>Wed, 22 Feb 2012 12:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 12:53:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void f (int* ptr)
{
	*ptr=8;
}

int main()
{

int b;
int* c;

f(&amp;b); // mit referenz
f(c); // mit zeiger

cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; b &lt;&lt; endl;
cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; *c &lt;&lt; endl;

system(&quot;PAUSE&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2184284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184284</guid><dc:creator><![CDATA[Videonauth]]></dc:creator><pubDate>Wed, 22 Feb 2012 12:53:35 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 12:56:05 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Getter, Suchfunktionen o.ä. -&gt; Pointer.</p>
</blockquote>
<p>Du gibst einen Zeiger auf das Attribut bei Getter zurück? Oder wie meinst du das?</p>
</blockquote>
<p>Wenn das Attribut optional ist und keinen &quot;Nullzustand&quot; hat, natürlich. Wie auch sonst? <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>CppZgr schrieb:</p>
<blockquote>
<p>Meintest du das so mit der Referenz?<br />
Weil da ist doch jetzt kein unterschied beide Funktionen sind intern gleich.</p>
</blockquote>
<p>Ein Pointer würde Sinn machen, wenn man noch nicht genau wüsste ob das Objekt auch existiert. Aber bei globalen oder statischen Variablen kann man sich ziemlich sicher sein, dass die da sind. Daher Referenzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184285</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 22 Feb 2012 12:56:05 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 13:03:14 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28637">@Videonauth</a>: GCC unter Linux<br />
Compile:</p>
<pre><code>22:15: Fehler: »system« wurde in diesem Gültigkeitsbereich nicht definiert [Habe ich rausgemacht

6:5: Warnung: »c« wird in dieser Funktion uninitialisiert verwendet [-Wuninitialized]
</code></pre>
<p>Ausführen:</p>
<pre><code>Speicherzugriffsfehler
</code></pre>
<p>EDIT:<br />
Außerdem (zu den Gettern): Mit Pointern kann man &quot;erwingen&quot; (zumindestens besser als mit Referenzen) das wirklich mit dem Pointer gearbeitet wird. Bei Referenzen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class X {
  private:
    int i;
  public:
    void setI(int i) { this-&gt;i=i; }
    int&amp; getIRef() { return i; }
    int* getIPtr() { return &amp;i; }
};

int main() {
  X myX;
  myX.setI(5);
  int *ptr = myX.getIPtr();
  *ptr = 6; // myX.i wird direkt bearbeitet.
  int cpy = myX.getIRef(); // myX.i wird kopiert!
  int &amp;ref = myX.getIRef(); // so wäre es richtig. 
  cpy = 7;
  std::cout &lt;&lt; myX.getIRef() &lt;&lt; std::endl;
  std::cout &lt;&lt; cpy &lt;&lt; std::endl;
  std::cout &lt;&lt; ref &lt;&lt; std::endl;
  std::cout &lt;&lt; *ptr &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2184286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184286</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Wed, 22 Feb 2012 13:03:14 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 13:02:20 GMT]]></title><description><![CDATA[<p>pyhax schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28637">@Videonauth</a>: GCC unter Linux<br />
Compile:</p>
<pre><code>22:15: Fehler: »system« wurde in diesem Gültigkeitsbereich nicht definiert [Habe ich rausgemacht

6:5: Warnung: »c« wird in dieser Funktion uninitialisiert verwendet [-Wuninitialized]
</code></pre>
<p>Ausführen:</p>
<pre><code>Speicherzugriffsfehler
</code></pre>
</blockquote>
<p>Ooooops ja das mach Booh Booh stimmt, müsste dann so aussehen</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void f (int* ptr)
{
    *ptr=8;
}

int main()
{
int a;
int b;
int* c = &amp;b;

f(&amp;a); // mit referenz
f(c); // mit zeiger

cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; a &lt;&lt; endl;
cout&lt;&lt;&quot;Ausgabe: &quot;&lt;&lt; b &lt;&lt; endl;

system(&quot;PAUSE&quot;);
return 0;
}
</code></pre>
<p>Schreib das grade alles so, ohne IDE im Hintergrund oder Zugriff auf compiler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184288</guid><dc:creator><![CDATA[Videonauth]]></dc:creator><pubDate>Wed, 22 Feb 2012 13:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 13:06:33 GMT]]></title><description><![CDATA[<p>Irgendwie Blick ich da nicht durch.</p>
<p>Ob ich es jetzt so mache</p>
<pre><code class="language-cpp">int glob;

int &amp;f ( )  // Mit Referenz 
{ 
 glob = 8; 
 return glob; 
}
</code></pre>
<p>oder so:</p>
<pre><code class="language-cpp">int glob_2

int *f_2 ( )  // Mit Zeiger
{
glob_2 = 1;
return &amp;glob_2; 
}
</code></pre>
<p>Das ist doch intern beides das gleiche.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184290</guid><dc:creator><![CDATA[CppZgr]]></dc:creator><pubDate>Wed, 22 Feb 2012 13:06:33 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 13:26:10 GMT]]></title><description><![CDATA[<p>nein. Ein Pointer kann NULL sein, eine Referenz dagegen nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184297</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 22 Feb 2012 13:26:10 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 13:34:09 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Gugelmoser schrieb:</p>
<blockquote>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Getter, Suchfunktionen o.ä. -&gt; Pointer.</p>
</blockquote>
<p>Du gibst einen Zeiger auf das Attribut bei Getter zurück? Oder wie meinst du das?</p>
</blockquote>
<p>Wenn das Attribut optional ist und keinen &quot;Nullzustand&quot; hat, natürlich. Wie auch sonst? <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>Und wieso keine Referenz? Das Attribut gibt es doch mit ziemlicher Sicherheit.</p>
<p>CppZgr schrieb:</p>
<blockquote>
<p>[...]</p>
</blockquote>
<p>Klar, mit beiden Dingen erreichst du dein Ziel. Nichtsdestotrotz sind es zwei völlig verschiedene Typen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184301</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 22 Feb 2012 13:34:09 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 14:56:41 GMT]]></title><description><![CDATA[<p>Gugelmoser schrieb:</p>
<blockquote>
<p>Und wieso keine Referenz? Das Attribut gibt es doch mit ziemlicher Sicherheit.</p>
</blockquote>
<p>Hä? Ne, eben nicht, es ist optional.</p>
<pre><code class="language-cpp">class a
{
  std::unique_ptr&lt;b&gt; b_;
public:
  a(bool has)
    : b_(has ? make_unique&lt;b&gt;() : nullptr)
  {}
  const b* get_b()
  {
    return b_.get();
  }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2184322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184322</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 22 Feb 2012 14:56:41 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 15:32:08 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>nein. Ein Pointer kann NULL sein, eine Referenz dagegen nicht.</p>
</blockquote>
<p>Was ich sagen wollte war das es ja egal ist ob ich es sowie in Bsp. 1 oder sowie in Bsp. 2 mache, da mein Compiler aus beidem intern das gleiche zusammenfrickelt.</p>
<p>Bsp. 1</p>
<pre><code class="language-cpp">int glob; 

int &amp;f ( )  // Mit Referenz 
 { 
  glob = 8; 
  return glob; 
 }
</code></pre>
<p>Bsp. 2</p>
<pre><code class="language-cpp">int glob_2

int *f_2 ( )  // Mit Zeiger
{
glob_2 = 1;
return &amp;glob_2; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2184330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184330</guid><dc:creator><![CDATA[CppZgr]]></dc:creator><pubDate>Wed, 22 Feb 2012 15:32:08 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 15:38:55 GMT]]></title><description><![CDATA[<p>was der Compiler daraus macht, ist egal. Es geht um die Anwender deines Codes und um die Möglichkeit, dass die Funktion bei einem Pointer eben auch NULL zurückliefern kann. Somit ist eine zusätzliche Fehlerbehandlung notwendig. Man hat aber die Möglichkeit gewonnen, ein &quot;Fehlschlagen&quot; der Funktion ohne Exceptions zu signalisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2184331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184331</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 22 Feb 2012 15:38:55 GMT</pubDate></item><item><title><![CDATA[Reply to Funktions Zeiger on Wed, 22 Feb 2012 15:42:08 GMT]]></title><description><![CDATA[<p>CppZgr schrieb:</p>
<blockquote>
<p>Was ich sagen wollte war das es ja egal ist ob ich es sowie in Bsp. 1 oder sowie in Bsp. 2 mache, da mein Compiler aus beidem intern das gleiche zusammenfrickelt.</p>
</blockquote>
<p>Ja. Wie wärs wenn du dann noch auf Schleifen verzichtest und nur noch goto nimmst, ist doch egal, der Compiler frickelt das Gleiche zusammen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2184332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2184332</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Wed, 22 Feb 2012 15:42:08 GMT</pubDate></item></channel></rss>