<?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[Beginner: aufräumen!]]></title><description><![CDATA[<p>Ich habe die Klasse a mit dem Member</p>
<pre><code class="language-cpp">Gdiplus::Image* m_pImage;
</code></pre>
<p>m_pImage wird in der Klasse ggf. durch new initialisiert.</p>
<p>ich will im Destruktor den Speicher - nur wenn er belegt wurde - wieder freigeben.</p>
<pre><code class="language-cpp">if(m_pImage)
  delete m_pImage;

if(m_pImage != NULL)
  delete m_pImage;
</code></pre>
<p>klappen nicht, hier bekomme ich wenn m_pImage nicht initialisiert wurde einen NullPointer. Wie dann? Um try-catch wollte ich an sich herumkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/138094/beginner-aufräumen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 00:44:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/138094.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Feb 2006 11:51:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Beginner: aufräumen! on Thu, 23 Feb 2006 11:59:23 GMT]]></title><description><![CDATA[<p>Ich habe die Klasse a mit dem Member</p>
<pre><code class="language-cpp">Gdiplus::Image* m_pImage;
</code></pre>
<p>m_pImage wird in der Klasse ggf. durch new initialisiert.</p>
<p>ich will im Destruktor den Speicher - nur wenn er belegt wurde - wieder freigeben.</p>
<pre><code class="language-cpp">if(m_pImage)
  delete m_pImage;

if(m_pImage != NULL)
  delete m_pImage;
</code></pre>
<p>klappen nicht, hier bekomme ich wenn m_pImage nicht initialisiert wurde einen NullPointer. Wie dann? Um try-catch wollte ich an sich herumkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000984</guid><dc:creator><![CDATA[DrOetker]]></dc:creator><pubDate>Thu, 23 Feb 2006 11:59:23 GMT</pubDate></item><item><title><![CDATA[Reply to Beginner: aufräumen! on Thu, 23 Feb 2006 11:59:22 GMT]]></title><description><![CDATA[<p>Wenn du den Pointer nicht explizit mit einem Wert versiehst, hat er einen willkürlichen Anfangswert - da kann deine Sicherheitsabfrage überhaupt nichts abfangen. Die beste Lösung ist es deshalb, den Pointer im Ctor definiert zu belegen:</p>
<pre><code class="language-cpp">class test
{
public:
  test() : m_data(NULL) {}              //Vorbelegung mit NULL
  test(int ct) : m_data(new int[ct]) {} //definierter Anfangswert

  ~test()
  { if(m_data)delete[] m_data; }
private:
  int* m_data;
}
</code></pre>
<p>(wichtig ist hier, daß JEDER Konstruktor dem Pointer einen Wert gibt - entweder ein durch new erzeugtes Objekt oder NULL)</p>
<p>PS: Das Beispiel dient nur der Anschauung - und ist nicht praktisch einsetzbar <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/1000996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000996</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 23 Feb 2006 11:59:22 GMT</pubDate></item><item><title><![CDATA[Reply to Beginner: aufräumen! on Thu, 23 Feb 2006 11:59:46 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=18038" rel="nofollow">CStoll</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=1" rel="nofollow">MFC (Visual C++)</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000998</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 23 Feb 2006 11:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to Beginner: aufräumen! on Thu, 23 Feb 2006 12:12:02 GMT]]></title><description><![CDATA[<p>Muss ich mehrere Variablen durch Kommata trennen?</p>
<p>und ist das möglich und richtig (presPathName übergeben):</p>
<pre><code class="language-cpp">PicFrame::PicFrame(LPCSTR presPathName) : m_pImage(NULL), 
	m_pOriginalImage(NULL), 
	m_contextTime(0),
	m_timeCode(0),
	m_PathName(presPathName){}
</code></pre>
<p>(der Compiler akzeptiert es) ?</p>
<p>Vielen Dank (mal wieder, ich backe Dir mal einen Kuchen glaube ich <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/1001008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1001008</guid><dc:creator><![CDATA[DrOetker]]></dc:creator><pubDate>Thu, 23 Feb 2006 12:12:02 GMT</pubDate></item><item><title><![CDATA[Reply to Beginner: aufräumen! on Thu, 23 Feb 2006 12:11:32 GMT]]></title><description><![CDATA[<p>DrOetker schrieb:</p>
<blockquote>
<p>Muss ich mehrere Variablen durch Kommata trennen?</p>
<p>und ist das möglich und richtig (presPathName übergeben):</p>
<pre><code class="language-cpp">PicFrame::PicFrame(LPCSTR presPathName) : m_pImage(NULL), 
	m_pOriginalImage(NULL), 
	m_contextTime(0),
	m_timeCode(0),
	m_PathName(presPathName){}
</code></pre>
<p>(der Compiler akzeptiert es) ?</p>
</blockquote>
<p>ja</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1001017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1001017</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Thu, 23 Feb 2006 12:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to Beginner: aufräumen! on Fri, 24 Feb 2006 11:24:49 GMT]]></title><description><![CDATA[<p>DrOetker schrieb:</p>
<blockquote>
<p>Ich habe die Klasse a mit dem Member</p>
<pre><code class="language-cpp">Gdiplus::Image* m_pImage;
</code></pre>
<p>m_pImage wird in der Klasse ggf. durch new initialisiert.</p>
</blockquote>
<p>überlege erstmal, ob das so auch perfekt ist. ist das sinnvoll so, oder ist es besser, wenn das p_Image immer vom konstruktor gebaut wird?</p>
<blockquote>
<pre><code class="language-cpp">if(m_pImage)
  delete m_pImage;
</code></pre>
</blockquote>
<p>nur</p>
<pre><code class="language-cpp">delete m_pImage;
</code></pre>
<p>reicht. irgendwie wurde dummerweise festgelegt, daß delete 0; erlaubt ist und keine auswirkungen hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1001814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1001814</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 24 Feb 2006 11:24:49 GMT</pubDate></item></channel></rss>