<?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[Korrekter Cast gesucht]]></title><description><![CDATA[<p>Will man in einer von <strong>CWinApp</strong> abgeleiteten Klasse den Namen der INI-Datei oder der Hilfedatei ändern, so wird das wie folgt empfohlen:</p>
<pre><code class="language-cpp">free((void*) m_pszProfileName);
m_pszProfileName = _tcsdup(_T(&quot;D:\\appname.ini&quot;));
</code></pre>
<p>Meine Frage an euch: Wie castet man in der <strong>free</strong>-Anweisung <strong>m_pszProfileName</strong> mit C++-Casts? <strong>m_pszProfileName</strong> ist ein LPCTSTR.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203175/korrekter-cast-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 17:47:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203175.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 19 Jan 2008 18:57:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Korrekter Cast gesucht on Sat, 19 Jan 2008 18:57:29 GMT]]></title><description><![CDATA[<p>Will man in einer von <strong>CWinApp</strong> abgeleiteten Klasse den Namen der INI-Datei oder der Hilfedatei ändern, so wird das wie folgt empfohlen:</p>
<pre><code class="language-cpp">free((void*) m_pszProfileName);
m_pszProfileName = _tcsdup(_T(&quot;D:\\appname.ini&quot;));
</code></pre>
<p>Meine Frage an euch: Wie castet man in der <strong>free</strong>-Anweisung <strong>m_pszProfileName</strong> mit C++-Casts? <strong>m_pszProfileName</strong> ist ein LPCTSTR.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439605</guid><dc:creator><![CDATA[sri]]></dc:creator><pubDate>Sat, 19 Jan 2008 18:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Cast gesucht on Sat, 19 Jan 2008 19:36:51 GMT]]></title><description><![CDATA[<p>Du musst nur das const wegcasten.</p>
<pre><code class="language-cpp">free(const_cast&lt;LPTSTR&gt;(m_pszProfileName));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1439620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439620</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 19 Jan 2008 19:36:51 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Cast gesucht on Sat, 19 Jan 2008 20:15:08 GMT]]></title><description><![CDATA[<p>Danke Dir! <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/1439635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439635</guid><dc:creator><![CDATA[sri]]></dc:creator><pubDate>Sat, 19 Jan 2008 20:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Cast gesucht on Mon, 21 Jan 2008 07:54:58 GMT]]></title><description><![CDATA[<p>Nur eine Randbemerkung: Ich hoffe für dich, daß der übergebene Zeiger auch von malloc() erzeugt wurde - und niemand eine Kopie dieses Zeigers aufgehoben hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440306</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 21 Jan 2008 07:54:58 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Cast gesucht on Mon, 21 Jan 2008 09:11:05 GMT]]></title><description><![CDATA[<p>sri hat <strong>_tcsdup</strong> verwendet, und damit trifft dies wohl zu!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440370</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 21 Jan 2008 09:11:05 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Cast gesucht on Mon, 21 Jan 2008 10:38:41 GMT]]></title><description><![CDATA[<p><strong>m_pszProfileName</strong> wird in <strong>CWinApp::SetCurrentHandles()</strong> mit <strong>_tcsdup</strong> angelegt und in <strong>CWinApp::~CWinApp()</strong> mit <strong>free</strong> freigeben. Sollte also passen. <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/1440454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440454</guid><dc:creator><![CDATA[sri]]></dc:creator><pubDate>Mon, 21 Jan 2008 10:38:41 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Cast gesucht on Mon, 21 Jan 2008 10:57:43 GMT]]></title><description><![CDATA[<p>OK, in dem Fall sollte es passen - mir kam es nur verdächtig vor, auf einen unbekannten Zeiger einfach free() loszulassen. Aber wenn das in der MSDN so empfohlen wird, sollte das seine Richtigkeit haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440465</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 21 Jan 2008 10:57:43 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Cast gesucht on Mon, 21 Jan 2008 18:48:17 GMT]]></title><description><![CDATA[<p>_tcsdup gehört zur strdup Familie, und für strdup ist AFAIK im C-Standard definiert dass man free zu verwenden hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440860</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 21 Jan 2008 18:48:17 GMT</pubDate></item><item><title><![CDATA[Reply to Korrekter Cast gesucht on Tue, 22 Jan 2008 07:30:07 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>_tcsdup gehört zur strdup Familie, und für strdup ist AFAIK im C-Standard definiert dass man free zu verwenden hat.</p>
</blockquote>
<p>Auch wenn es fast jeder Compiler unterstützt, ist <a href="http://man.cx/strdup()" rel="nofollow">man: strdup()</a> NICHT im Ansi-Standard definiert. Und aus dem oben gegebenen Code-Ausschnitt war nicht ersichtlich, woher der ursprüngliche Wert von m_pszProfileName stammte (free() ist nur definiert, wenn der übergebene Zeiger von der malloc Familie geliefert wurde).</p>
<p>Aber wie gesagt, inzwischen habe ich die MSDN bemüht - und wenn die sagt, daß man diesen Zeiger mit free() freigeben darf/muß, wird das schon stimmen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1441047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441047</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 22 Jan 2008 07:30:07 GMT</pubDate></item></channel></rss>