<?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[String-Konstante als pointer - Zulässig?]]></title><description><![CDATA[<p>Darf man das machen, solange man nicht in den Speicherbereich des Literals schreibt?</p>
<pre><code class="language-cpp">const char* str = &quot;Hallo&quot;;

// anstatt

const char str[] = &quot;Hallo&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/219376/string-konstante-als-pointer-zulässig</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 07:57:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/219376.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 Aug 2008 10:35:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 10:35:40 GMT]]></title><description><![CDATA[<p>Darf man das machen, solange man nicht in den Speicherbereich des Literals schreibt?</p>
<pre><code class="language-cpp">const char* str = &quot;Hallo&quot;;

// anstatt

const char str[] = &quot;Hallo&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1557970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1557970</guid><dc:creator><![CDATA[__Stefan__]]></dc:creator><pubDate>Sat, 02 Aug 2008 10:35:40 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 10:45:54 GMT]]></title><description><![CDATA[<p>Die Frage kommt etwa alle zwei Tage... Benutz doch mal die Forensuche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1557973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1557973</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 02 Aug 2008 10:45:54 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 10:57:53 GMT]]></title><description><![CDATA[<p>Sicher, alle zwei Tage... arroganter Flegel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1557979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1557979</guid><dc:creator><![CDATA[__Stefan__]]></dc:creator><pubDate>Sat, 02 Aug 2008 10:57:53 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 11:00:20 GMT]]></title><description><![CDATA[<p>hehe, dieser thread scheint lustig zu werden <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/1557980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1557980</guid><dc:creator><![CDATA[sothis_]]></dc:creator><pubDate>Sat, 02 Aug 2008 11:00:20 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 11:11:13 GMT]]></title><description><![CDATA[<p>wieso nicht? Was soll da nicht gehen?</p>
<p>PS: Wo DIESE Frage alle zwei Tage kommt, würde ich auch gerne wissen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1557986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1557986</guid><dc:creator><![CDATA[tschörnie]]></dc:creator><pubDate>Sat, 02 Aug 2008 11:11:13 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 11:43:48 GMT]]></title><description><![CDATA[<p><strong>Stefan</strong> schrieb:</p>
<blockquote>
<p>Darf man das machen, solange man nicht in den Speicherbereich des Literals schreibt?</p>
<pre><code class="language-cpp">const char* str = &quot;Hallo&quot;;

// anstatt

const char str[] = &quot;Hallo&quot;;
</code></pre>
</blockquote>
<p>Du kannst auch bei ersterem &quot;Hallo&quot; nicht überschreiben. Es ist const char!<br />
Du kannst nur str noch woanders hinzeigen lassen.</p>
<p>Beim zweiten kannst du den Zeiger nicht mehr ändern!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1558006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1558006</guid><dc:creator><![CDATA[Thomy]]></dc:creator><pubDate>Sat, 02 Aug 2008 11:43:48 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 12:47:12 GMT]]></title><description><![CDATA[<p><strong>Stefan</strong> schrieb:</p>
<blockquote>
<p>Sicher, alle zwei Tage... arroganter Flegel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
</blockquote>
<p>Naja, alle zwei Tage war übertrieben (was man aber auch merken könnte). Was ich damit sagen wollte, das schon häufig über <code>char[]</code> vs <code>char*</code> diskutiert wurde. Das war im Weiteren nur ein Hinweis, deshalb brauchst du nicht gleich beleidigend zu werden.<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-218128.html" rel="nofollow">Hier</a> z.B. gab es etwas sehr Ähnliches. Und im C-Forum gibt es häufig solche Beiträge.</p>
<p>Ich seh jetzt mal über deine Beleidigung hinweg und versuch trotzdem, dir zu helfen...</p>
<p>Thomy schrieb:</p>
<blockquote>
<p>Du kannst auch bei ersterem &quot;Hallo&quot; nicht überschreiben. Es ist const char!<br />
Du kannst nur str noch woanders hinzeigen lassen.</p>
<p>Beim zweiten kannst du den Zeiger nicht mehr ändern!!!</p>
</blockquote>
<p>Das stimmt nicht ganz. Die erste Version ist <strong>kein</strong> konstanter Zeiger, sondern ein Zeiger auf <code>const char</code> . Den Zeiger selber kann man deshalb ändern, aber nicht den Inhalt, auf den er zeigt. &quot;Hallo&quot; kann insofern &quot;überschrieben&quot; werden (siehe Codebeispiel unten).</p>
<p>Beim zweiten liegt kein Zeiger, sondern ein Array vor, dessen Grösse feststeht. So können die einzelnen Elemente dank <code>const</code> nicht verändert werden.</p>
<pre><code class="language-cpp">const char* str = &quot;Hallo&quot;;
str = &quot;Guten Tag&quot;;				// geht, Zeiger wird geändert
strcpy(str, &quot;Hi&quot;);				// geht nicht
str[0] = 'h';					 // geht nicht

const char sts[] = &quot;Hallo&quot;;	   // hier kannst du nachträglich nichts ändern
							      // (zumindest auf normale Weise nicht)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1558031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1558031</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 02 Aug 2008 12:47:12 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 14:38:31 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a>: Ich nehme den &quot;arroganten Flegel&quot; zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1558073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1558073</guid><dc:creator><![CDATA[__Stefan__]]></dc:creator><pubDate>Sat, 02 Aug 2008 14:38:31 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 19:24:51 GMT]]></title><description><![CDATA[<p>Danke, das ist nett von 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>
<p>Noch zu deiner Ausgangsfrage:</p>
<pre><code class="language-cpp">const char* str = &quot;Hallo&quot;;
</code></pre>
<p>ist erlaubt, weil für String-Literale Speicher reserviert wird (nicht für andere Literale). Das heisst, <code>str</code> zeigt auf einen gültigen Speicherbereich.</p>
<p>Bestehen zu deinem Problem noch weitere Fragen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1558205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1558205</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 02 Aug 2008 19:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 20:22:27 GMT]]></title><description><![CDATA[<p>Danke für die klare Antwort. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Es ist nicht so, dass die Array-Variante zwei mal den Speicher für den String belegt, oder? Das heisst, im Fall einer Konstanten bietet keine der beiden Varianten eine Vorteil gegenüber der anderen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1558237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1558237</guid><dc:creator><![CDATA[__Stefan__]]></dc:creator><pubDate>Sat, 02 Aug 2008 20:22:27 GMT</pubDate></item><item><title><![CDATA[Reply to String-Konstante als pointer - Zulässig? on Sat, 02 Aug 2008 20:55:30 GMT]]></title><description><![CDATA[<p><strong>Stefan</strong> schrieb:</p>
<blockquote>
<p>Es ist nicht so, dass die Array-Variante zwei mal den Speicher für den String belegt, oder?</p>
</blockquote>
<p>Doch, genau das sollte passieren. Der Inhalt des Stringliterals (das normalerweise im statischen Speicher rumliegt) wird in dein Array kopiert, bei der Zeigervariante hast du tatsächlich nur den Zeiger.<br />
Das „erstaunlichere“ Phänomen ist, dass du die (konstanten) Stringliterale auch einem gewöhnlichen char-Zeiger zuweisen darfst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1558249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1558249</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sat, 02 Aug 2008 20:55:30 GMT</pubDate></item></channel></rss>