<?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[newbifrage -&amp;gt; heap]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche nun eine variable anzulegen die in der methode einer klasse initialisiert wird. Ich will sie global solange verfügbar machen bis ich den heap wieder freigebe.<br />
Aber bei sowas meckert mein compiler:</p>
<p>Class1::teste()<br />
{<br />
int * a = new int;<br />
*a = 4;<br />
}</p>
<p>Class1::teste2()<br />
{<br />
cout&lt;&lt; *a &lt;&lt; endl;<br />
delete a;<br />
}</p>
<p>Warum?<br />
Ist es nicht so dass ich einfach die Variable solange global verfügbar mache bis ich sie wieder freigebe?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/122288/newbifrage-gt-heap</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 00:34:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/122288.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 03 Oct 2005 00:34:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to newbifrage -&amp;gt; heap on Mon, 03 Oct 2005 00:34:50 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche nun eine variable anzulegen die in der methode einer klasse initialisiert wird. Ich will sie global solange verfügbar machen bis ich den heap wieder freigebe.<br />
Aber bei sowas meckert mein compiler:</p>
<p>Class1::teste()<br />
{<br />
int * a = new int;<br />
*a = 4;<br />
}</p>
<p>Class1::teste2()<br />
{<br />
cout&lt;&lt; *a &lt;&lt; endl;<br />
delete a;<br />
}</p>
<p>Warum?<br />
Ist es nicht so dass ich einfach die Variable solange global verfügbar mache bis ich sie wieder freigebe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/884856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/884856</guid><dc:creator><![CDATA[mattt]]></dc:creator><pubDate>Mon, 03 Oct 2005 00:34:50 GMT</pubDate></item><item><title><![CDATA[Reply to newbifrage -&amp;gt; heap on Mon, 03 Oct 2005 00:57:21 GMT]]></title><description><![CDATA[<p>Nein, die Variable existiert zwar noch aber eine Zeigervariable für diese Variable existiert nur in der ersten Funktion und wird nach deren Beendigung gelöscht und du hast keinen weiteren Zugriff auf sie. Wenn du von allen Klassenmethoden auf diese Zugreifen willst, dann musst du einen Zeiger auf die Variable als Membervariable speichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/884859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/884859</guid><dc:creator><![CDATA[User---]]></dc:creator><pubDate>Mon, 03 Oct 2005 00:57:21 GMT</pubDate></item><item><title><![CDATA[Reply to newbifrage -&amp;gt; heap on Mon, 03 Oct 2005 00:57:39 GMT]]></title><description><![CDATA[<p>Ja der Speicher bleibt schon verfügbar bis du ihn löscht, aber der Zeiger (heißt bei dir 'a') ist noch eine extra Variable die auf dem Stack liegt und nach beenden der Methode teste() gelöscht wird. Dann hast du zwar noch Speicher, weißt aber die Adresse nicht mehr. -&gt; Dumm gelaufen.</p>
<pre><code class="language-cpp">class IntSpeicher
{
public:
    void set(int wert) { *speicher = wert; }
    int get() { return *speicher; }
    IntSpeicher() { speicher = new int; }
    ~IntSpeicher() { delete speicher; }
private:
    int* speicher;
};
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/884860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/884860</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Mon, 03 Oct 2005 00:57:39 GMT</pubDate></item><item><title><![CDATA[Reply to newbifrage -&amp;gt; heap on Tue, 04 Oct 2005 19:32:04 GMT]]></title><description><![CDATA[<p>der mit new allozierte speicher ist schon global verfügbar, aber nicht die variable, in der du den zeiger abgelegt hast! nachdem dein programm teste() verlassen hat ist der mit new allozierte speicher zwar noch da, aber der zeiger darauf ist futsch.</p>
<p>du mußt a als globale variable deklarieren. oder besser noch als klassenvariable von Class1.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/885112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/885112</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Tue, 04 Oct 2005 19:32:04 GMT</pubDate></item></channel></rss>