<?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[Frage zur Speicherbelegung eines Strings]]></title><description><![CDATA[<p>Hallo zusammen,<br />
mein Buch sagt: &quot;Ein String benötigt deshalb ein Byte mehr Speicherplatz als die Anzahl der Zeichen, die er enthält. Der leere String &quot;&quot; belegt genau ein Byte.&quot;</p>
<p>Nun habe ich folgendes geschrieben:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
...
string zeichenkette=&quot;&quot;;
cout &lt;&lt; sizeof(zeichenkette);
</code></pre>
<p>Warum wird nun 32 ausgegeben? Egal wie viel in <em>zeichenkette</em> steht, die Größe bleibt konstant auf 32 Byte! Warum?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247287/frage-zur-speicherbelegung-eines-strings</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 13:56:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247287.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 08 Aug 2009 19:38:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zur Speicherbelegung eines Strings on Sat, 08 Aug 2009 19:38:01 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
mein Buch sagt: &quot;Ein String benötigt deshalb ein Byte mehr Speicherplatz als die Anzahl der Zeichen, die er enthält. Der leere String &quot;&quot; belegt genau ein Byte.&quot;</p>
<p>Nun habe ich folgendes geschrieben:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
...
string zeichenkette=&quot;&quot;;
cout &lt;&lt; sizeof(zeichenkette);
</code></pre>
<p>Warum wird nun 32 ausgegeben? Egal wie viel in <em>zeichenkette</em> steht, die Größe bleibt konstant auf 32 Byte! Warum?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1757569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1757569</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sat, 08 Aug 2009 19:38:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Speicherbelegung eines Strings on Sat, 08 Aug 2009 19:47:10 GMT]]></title><description><![CDATA[<p>Der string belegt mindestens einen Zeiger, also 4 Bytes und der zeigt auf wo im Freispeicher, das belegt auf Win mindestens 32 Bytes.<br />
Was der Autor meint, sind wohl character-arrays, was die normale Darstellung für Strings ist und so direkt nix mit der Klasse string zu tun hat.<br />
Machmal</p>
<pre><code class="language-cpp">char bla[]=&quot;hallo&quot;;
cout&lt;&lt;sizeof(bla)&lt;&lt;'\n';
</code></pre>
<p>Ich könnte mir denken, daß das Buch jetzt stimmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1757577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1757577</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 08 Aug 2009 19:47:10 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Speicherbelegung eines Strings on Sat, 08 Aug 2009 20:01:33 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe das mal ausprobiert und es stimmt! Wenn man über strings redet, dann denke ich auch an <em>string</em> und nicht an chars...naja!</p>
<p>Vielen Dank für den Tipp!</p>
<p>lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1757581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1757581</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sat, 08 Aug 2009 20:01:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Speicherbelegung eines Strings on Sat, 08 Aug 2009 20:07:01 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>Wenn man über strings redet, dann denke ich auch an <em>string</em> und nicht an chars...naja!</p>
</blockquote>
<p>Ein String ist eine Zeichenkette. Ob man damit std::string, ein char-Array, CString, AnsiString oder sonstwas meint, ist rein aus der Bezeichnung ja erst mal nicht ersichtlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1757583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1757583</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Sat, 08 Aug 2009 20:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Speicherbelegung eines Strings on Sun, 09 Aug 2009 10:42:38 GMT]]></title><description><![CDATA[<p>Ja, da hast du natürlich recht. Ich sollte es mir abgewöhnen <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>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1757790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1757790</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sun, 09 Aug 2009 10:42:38 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Speicherbelegung eines Strings on Mon, 10 Aug 2009 08:57:30 GMT]]></title><description><![CDATA[<p>Und noch ein Hinweis, warum bei std::string bei einigen Implementierungen mehr als ein Zeiger sowie die Länge abspeichert wird. Für kleine Zeichenketten werden diese dann direkt im std::string-Objekt abgelegt (anstatt per new Freispeicher anzufordern), d.h. intern gibt es dann z.B. einen char[16]-Puffer (erst bei Strings mit mehr als 15 Zeichen - eines weniger, wegen dem Nullendezeichen - wird die zeitaufwändigere Freispeicherallokation aufgerufen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758133</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Mon, 10 Aug 2009 08:57:30 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Speicherbelegung eines Strings on Mon, 10 Aug 2009 09:30:23 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>Nun habe ich folgendes geschrieben:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
...
string zeichenkette=&quot;&quot;;
cout &lt;&lt; sizeof(zeichenkette);
</code></pre>
</blockquote>
<p>Davon abgesehen: sizeof würde ich im Zusammenhang mit Klassen mit Vorsicht geniesen (ober anders herum: denk daran das sizeof nur die eigentliche Größe liefert, nicht aber den Speicherbereich auf den Zeiger verweisen)...</p>
<p>Probier mal aus was sizeof zurückgibt wenn du einen langen String in &quot;zeichenkette&quot; schreibst und denk dabei an obigen Hinweis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758148</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 10 Aug 2009 09:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Speicherbelegung eines Strings on Mon, 10 Aug 2009 09:33:06 GMT]]></title><description><![CDATA[<p>DAnn wird auch 32 ausgegeben....ja, ich denke, dass ich wohl die Bedeutung von sizeof falsch verstanden habe...</p>
<p>Vielen Dank für eure Hilfe.<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758151</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Mon, 10 Aug 2009 09:33:06 GMT</pubDate></item></channel></rss>