<?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[Smart-Pointer oder std::string?]]></title><description><![CDATA[<p>Hai</p>
<p>Ich lese aus einer Datei mit einer Funktion den Inhalt aus und gebe den Inhalt zurück. Der Anwender sollte sich nicht um die Speicherverwaltung kümmern.<br />
Ich alloziere ein C-String mittels new char[...].</p>
<p>Nun wären da 2 Möglichkeiten</p>
<p>Ein Smart-Pointer, nur welches für ein Array? std::auto_ptr&lt;char&gt; ist dafür ungeeignet:</p>
<blockquote>
<p>Deallocates the block of memory the object &quot;points to&quot; using delete (<strong>delete</strong> get()) and destructs the object.</p>
</blockquote>
<p>Bei std::string bin ich mir nicht sicher. Löscht der Destruktor das von mir allozierte C-String?</p>
<p>Bitte um Hilfe! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268131/smart-pointer-oder-std-string</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 03:07:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268131.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Jun 2010 16:24:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 16:24:30 GMT]]></title><description><![CDATA[<p>Hai</p>
<p>Ich lese aus einer Datei mit einer Funktion den Inhalt aus und gebe den Inhalt zurück. Der Anwender sollte sich nicht um die Speicherverwaltung kümmern.<br />
Ich alloziere ein C-String mittels new char[...].</p>
<p>Nun wären da 2 Möglichkeiten</p>
<p>Ein Smart-Pointer, nur welches für ein Array? std::auto_ptr&lt;char&gt; ist dafür ungeeignet:</p>
<blockquote>
<p>Deallocates the block of memory the object &quot;points to&quot; using delete (<strong>delete</strong> get()) and destructs the object.</p>
</blockquote>
<p>Bei std::string bin ich mir nicht sicher. Löscht der Destruktor das von mir allozierte C-String?</p>
<p>Bitte um Hilfe! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906858</guid><dc:creator><![CDATA[Hilfe Hilfe Große Not]]></dc:creator><pubDate>Fri, 04 Jun 2010 16:24:30 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 16:28:17 GMT]]></title><description><![CDATA[<p>std::string wird einen C-String intern kopieren.</p>
<p>Eine Alternative waere boost::smart_array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906861</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Fri, 04 Jun 2010 16:28:17 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 16:30:47 GMT]]></title><description><![CDATA[<p>Hilfe Hilfe Große Not schrieb:</p>
<blockquote>
<p>Bei std::string bin ich mir nicht sicher. Löscht der Destruktor das von mir allozierte C-String?</p>
</blockquote>
<p>Nein der löscht nur seine eigenen Sachen. Aber mit <code>std::string</code> brauchst du ja auch keinen 'c-string' mehr.</p>
<p>Ansonsten gibt es für Arrays von boost die smart pointer <code>shared_array</code> oder<br />
<code>scoped_array</code><br />
<a href="http://www.boost.org/doc/libs/1_43_0/libs/smart_ptr/smart_ptr.htm" rel="nofollow">http://www.boost.org/doc/libs/1_43_0/libs/smart_ptr/smart_ptr.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906863</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Fri, 04 Jun 2010 16:30:47 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 16:31:28 GMT]]></title><description><![CDATA[<p>Zu Boost greife ich erst zu, wenn die Standardbibliothek sowas nicht anbietet. <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>
<p>Ist das der Fall?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906864</guid><dc:creator><![CDATA[Hilfe Hilfe Große Not]]></dc:creator><pubDate>Fri, 04 Jun 2010 16:31:28 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 16:35:38 GMT]]></title><description><![CDATA[<p>std::vector&lt;char&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906867</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Fri, 04 Jun 2010 16:35:38 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 16:37:59 GMT]]></title><description><![CDATA[<p>Hilfe Hilfe Große Not schrieb:</p>
<blockquote>
<p>Zu Boost greife ich erst zu, wenn die Standardbibliothek sowas nicht anbietet. <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="🤡"
    /><br />
Ist das der Fall?</p>
</blockquote>
<p>Die STL bietet der <code>string</code> und <code>vector</code> . Das sollte doch reichen oder wie was wo?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906869</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Fri, 04 Jun 2010 16:37:59 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 16:43:37 GMT]]></title><description><![CDATA[<p>Da hast du recht, aber wenn ifstream eine Funktion anbietet, die diese Signatur hat</p>
<pre><code class="language-cpp">istream&amp; read ( char* s, streamsize n );
</code></pre>
<p>kann ich ja auch nicht viel machen. Ich könnte zeilenweise auslesen und in den std::string stopfen, nur denke ich, dass das nicht perfomant ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906875</guid><dc:creator><![CDATA[Hilfe Hilfe Große Not]]></dc:creator><pubDate>Fri, 04 Jun 2010 16:43:37 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 19:14:48 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">vector&lt;char&gt; v(100);
stream.read(&amp;v[0], v.size());
</code></pre>
<p>Edit: <code>v.size()</code> ist besser als 100 <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/1906879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906879</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Fri, 04 Jun 2010 19:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 16:50:17 GMT]]></title><description><![CDATA[<p>ipsec schrieb:</p>
<blockquote>
<pre><code class="language-cpp">vector&lt;char&gt; v(100);
stream.read(&amp;v[0], 100);
</code></pre>
</blockquote>
<p>ah das ist ja mal toll!<br />
danke <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/1906882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906882</guid><dc:creator><![CDATA[Hilfe Hilfe Große Not]]></dc:creator><pubDate>Fri, 04 Jun 2010 16:50:17 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 16:57:41 GMT]]></title><description><![CDATA[<p>als zweiten parameter kann man im übrigen auch <code>v.size()</code> nehmen ;o)</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906891</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 04 Jun 2010 16:57:41 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 17:04:01 GMT]]></title><description><![CDATA[<p>Dürfte ich noch fragen, wieso ihr alle Boost empfiehlt?</p>
<p>Wenn ich beim GCC so rumblätter finde ich das hier</p>
<p><a href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00273.html" rel="nofollow">http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00273.html</a></p>
<p>Oder gibt es da unterschiede?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906899</guid><dc:creator><![CDATA[Hilfe Hilfe Große Not]]></dc:creator><pubDate>Fri, 04 Jun 2010 17:04:01 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 17:08:17 GMT]]></title><description><![CDATA[<p>shared_ptr ist was anderes als shared_array... wie der name schon sagt.<br />
Schau einfach mal in die boost doku.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906902</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Fri, 04 Jun 2010 17:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to Smart-Pointer oder std::string? on Fri, 04 Jun 2010 18:07:47 GMT]]></title><description><![CDATA[<p>Hilfe Hilfe Große Not schrieb:</p>
<blockquote>
<p>Dürfte ich noch fragen, wieso ihr alle Boost empfiehlt?</p>
<p>Wenn ich beim GCC so rumblätter finde ich das hier</p>
<p><a href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00273.html" rel="nofollow">http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00273.html</a></p>
<p>Oder gibt es da unterschiede?</p>
</blockquote>
<p>Das ist die Zukunft. In C++0x wird es einen <code>shared_ptr</code> geben, gewisse Kompiler unterstützen schon Teile davon. Im TR1 (Technical Report 1), welcher die meistens Kompiler unterstützen, befindet sich auch ein <code>shared_ptr</code> ( <code>std::tr1::shared_ptr</code> ).</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906929</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 04 Jun 2010 18:07:47 GMT</pubDate></item></channel></rss>