<?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[Verständnisfrage zu char zeiger]]></title><description><![CDATA[<p>Also, vermutlich langweilen euch solche Fragen, aber mein Buch konnte mir keine Erklärung liefern und die Frage ist zu spezifiscvh um zu googlen...</p>
<pre><code>char *zeiger;
zeiger = &quot;ABC&quot;;
</code></pre>
<p>Warum geht das? Ich dachte Zeiger speichern nur adressen und um nen wert zu belegen muss man dereferenzieren...Außerdem scheint das nur mit char-zeigern zu klappen.</p>
<p>Bei</p>
<pre><code>int *zeiger = 12;
</code></pre>
<p>erhält man ne Fehlermeldung &quot;invalid conversion from int to *int&quot;, was ja auch sinnvoll ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253402/verständnisfrage-zu-char-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 22:12:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253402.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Nov 2009 22:58:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Sun, 01 Nov 2009 22:58:18 GMT]]></title><description><![CDATA[<p>Also, vermutlich langweilen euch solche Fragen, aber mein Buch konnte mir keine Erklärung liefern und die Frage ist zu spezifiscvh um zu googlen...</p>
<pre><code>char *zeiger;
zeiger = &quot;ABC&quot;;
</code></pre>
<p>Warum geht das? Ich dachte Zeiger speichern nur adressen und um nen wert zu belegen muss man dereferenzieren...Außerdem scheint das nur mit char-zeigern zu klappen.</p>
<p>Bei</p>
<pre><code>int *zeiger = 12;
</code></pre>
<p>erhält man ne Fehlermeldung &quot;invalid conversion from int to *int&quot;, was ja auch sinnvoll ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801930</guid><dc:creator><![CDATA[kARRE]]></dc:creator><pubDate>Sun, 01 Nov 2009 22:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Sun, 01 Nov 2009 23:02:58 GMT]]></title><description><![CDATA[<p>&quot;ABC&quot; ist kein char, sondern ein char[4], das implizit in einen char * propagiert wird. Deshalb klappt die Zuweisung. Wenn auch oft nur mit einer Warnung, dass man ein String-Literal besser einem const char * zuweisen sollte.</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801932</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Sun, 01 Nov 2009 23:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Sun, 01 Nov 2009 23:17:39 GMT]]></title><description><![CDATA[<p>okay, das heißt, wenn ich das richtig verstehe, dass der zeiger auf ein array zeigt, oder auf den anfang des arrays, wenn ich mich recht entsinne, aber wenn ich den code alleinstehend benutze, hab ich dem &quot;ABC&quot; noch gar nichts außer diesem zeiger zugeordnet. Ich kann es, sollte ich den Zeiger neu ausrichten, nie wieder ansprechen, eine zuweisung machen, etc.</p>
<p>Es wäre dann futsch.</p>
<p>Sehe ich das richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801933</guid><dc:creator><![CDATA[kARRE]]></dc:creator><pubDate>Sun, 01 Nov 2009 23:17:39 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Sun, 01 Nov 2009 23:33:19 GMT]]></title><description><![CDATA[<p>Du hast dem Zeiger die Adresse von &quot;ABC&quot; zugewiesen. &quot;ABC&quot; kannst du nichts zuweisen. Wenn du den Zeiger überschreibst, sagen wir mal mit Zeiger = &quot;hallo&quot; oder Zeiger = 0, dann kommst du an &quot;ABC&quot; nicht mehr ran, es sei denn es gibt noch einen anderen Zeiger der da hinzeigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801937</guid><dc:creator><![CDATA[nwp2]]></dc:creator><pubDate>Sun, 01 Nov 2009 23:33:19 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Sun, 01 Nov 2009 23:51:15 GMT]]></title><description><![CDATA[<p>Sorry, ich meinte auch, dass ich einem wert &quot;ABC&quot; zuweise und nicht andersrum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801941</guid><dc:creator><![CDATA[kARRE]]></dc:creator><pubDate>Sun, 01 Nov 2009 23:51:15 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Mon, 02 Nov 2009 07:12:23 GMT]]></title><description><![CDATA[<p>kARRE schrieb:</p>
<blockquote>
<p>Sorry, ich meinte auch, dass ich einem wert &quot;ABC&quot; zuweise und nicht andersrum.</p>
</blockquote>
<p>Einem <em>Wert</em> kann man nichts zuweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1801975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1801975</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Mon, 02 Nov 2009 07:12:23 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Mon, 02 Nov 2009 09:18:49 GMT]]></title><description><![CDATA[<p>ihr wisst, was ich meine (deutsche sprache - schwere sprache...und mitten in der nacht geschrieben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802017</guid><dc:creator><![CDATA[kARRE zu besuch]]></dc:creator><pubDate>Mon, 02 Nov 2009 09:18:49 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Mon, 02 Nov 2009 09:49:34 GMT]]></title><description><![CDATA[<p>kARRE zu besuch schrieb:</p>
<blockquote>
<p>deutsche sprache - schwere sprache...</p>
</blockquote>
<p>Das heißt &quot;deutsche<strong>s</strong> Sprache, schwere<strong>s</strong> Sprache&quot;! <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/1802028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802028</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Mon, 02 Nov 2009 09:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Mon, 02 Nov 2009 10:20:19 GMT]]></title><description><![CDATA[<p>kARRE zu besuch schrieb:</p>
<blockquote>
<p>ihr wisst, was ich meine (deutsche sprache - schwere sprache...und mitten in der nacht geschrieben)</p>
</blockquote>
<p>Ich weiß das jedenfalls nicht. Entweder verwendest Du die Begriffe falsch oder hast Probleme mit der deutschen Grammatik. Hellsehen kann ich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802047</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Mon, 02 Nov 2009 10:20:19 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Mon, 02 Nov 2009 11:58:04 GMT]]></title><description><![CDATA[<p>Ich habe dein Problem eigentlich auch nicht verstanden, versuche aber trotzdem mal eine Erklärung.</p>
<p>Wenn du in deinem Programm etwas wie &quot;ABC&quot; schreibst, ist das ein String-Literal (eine String-Konstante) mit dem Typ char-Array, im Beispiel also char[4]. Dieses String-Literal kannst du wie einen char * verwenden (besser wie einen const char *), also klappt deine Zuweisung zeiger = &quot;ABC&quot;. zeiger zeigt jetzt auf das erste Element des char-Arrays &quot;ABC&quot;.</p>
<p>kARRE schrieb:</p>
<blockquote>
<p>Ich kann es, sollte ich den Zeiger neu ausrichten, nie wieder ansprechen, eine zuweisung machen, etc.</p>
</blockquote>
<p>Falls du damit meinst, dass du ein Speicherleck hast, stimmt das nicht. Das liegt an der Art und Weise, wie solche String-Literale vom Compiler erstellt werden. Sie werden nämlich im &quot;Datensegment&quot; des Programms angelegt (zumindest unter Windows) und nicht auf Heap oder Stack. Vergleiche:</p>
<pre><code class="language-cpp">foo() {

   char *str1 = new char[4];
   std::strcpy(str1, &quot;ABC&quot;);
   str1 = &quot;XYZ&quot;;   // Hier entsteht ein Speicherleck

   char *str2 = &quot;ABC&quot;;
   str2 = &quot;XYZ&quot;;   // Hier entsteht kein Speicherleck
}
</code></pre>
<p>Der Speicher, auf den str1 zunächst zeigt, wird mit new(), also auf dem Heap erzeugt. Durch die spätere Zuweisung geht die Adresse des Speicherbereichs verloren, also hast du ein Speicherleck.</p>
<p>Der Speicher, auf den str2 ursprünglich zeigt, liegt im Datensegment des Programms. Durch die spätere Zuweisung eines anderen Strings ändert sich natürlich die Adresse, aber ein Speicherleck entsteht nicht.</p>
<p>Beantwortet das deine Frage?</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802084</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Mon, 02 Nov 2009 11:58:04 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Mon, 02 Nov 2009 12:33:17 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>kARRE zu besuch schrieb:</p>
<blockquote>
<p>ihr wisst, was ich meine (deutsche sprache - schwere sprache...und mitten in der nacht geschrieben)</p>
</blockquote>
<p>Ich weiß das jedenfalls nicht. Entweder verwendest Du die Begriffe falsch oder hast Probleme mit der deutschen Grammatik. Hellsehen kann ich nicht.</p>
</blockquote>
<p>3. oder du hast zuviel theoretische Informatik studiert... ^^</p>
<p>Also jeder, der ihn verstehen will, weiß ungefähr was er gemeint hat... Wenn man natürlich päpstlicher als der Papst ist, dann versteht man das nicht. <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/1802097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802097</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 02 Nov 2009 12:33:17 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Mon, 02 Nov 2009 12:51:18 GMT]]></title><description><![CDATA[<p>It0101 schrieb:</p>
<blockquote>
<p>Also jeder, der ihn verstehen will, weiß ungefähr was er gemeint hat... Wenn man natürlich päpstlicher als der Papst ist, dann versteht man das nicht. <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>
</blockquote>
<p>Also ich habe in meinem Leben noch keine einzige Vorlesung Hochschulinformatik gehört und verstehe ihn trotzdem nicht. Ich vermute aber dass sich sein Problem von alleine lösen würde, wenn er sich nur genug mit dem Thema beschäftigen würde um überhaupt eine verständliche Frage stellen zu können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802101</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 02 Nov 2009 12:51:18 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zu char zeiger on Mon, 02 Nov 2009 13:46:19 GMT]]></title><description><![CDATA[<p>kARRE schrieb:</p>
<blockquote>
<p>Warum geht das? Ich dachte Zeiger speichern nur adressen und um nen wert zu belegen muss man dereferenzieren...Außerdem scheint das nur mit char-zeigern zu klappen.</p>
</blockquote>
<pre><code class="language-cpp">// Jepp, Zeiger speichern Adressen:
   char* a = &quot;ABC&quot;; // a speichert die Adresse der Zeichenkette &quot;ABC&quot;
   char* b = &quot;DEF&quot;; // b speichert die Adresse der Zeichenkette &quot;DEF&quot;
   // Jepp, &quot;um den Wert zu belegen&quot;, muss man dereferenzieren.
   // Funzt jedoch nicht beim obigen Datentypen.
   // Man kann jedoch durch dereferenzieren die einzelnen Zeichen lesen:
   cout &lt;&lt; *a &lt;&lt; *(a+1) &lt;&lt; *(a+2) &lt;&lt; endl;

   // Bei diesem Datentypen kann man durch dereferenzieren Werte belegen:
   char aa[] = &quot;ABC&quot;;
   cout &lt;&lt; *aa &lt;&lt; *(aa+1) &lt;&lt; *(aa+2) &lt;&lt; endl;
   // Wir belegen mal den zweiten Buchstaben mit einem 'X':
   *(aa+1) = 'X';
   cout &lt;&lt; *aa &lt;&lt; *(aa+1) &lt;&lt; *(aa+2) &lt;&lt; endl; // Belegter String ;)
   // Statt belegen sagt man im allgemeinen: den Wert einer Variable ändern.
</code></pre>
<p>mfg,<br />
F.d.S.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802128</guid><dc:creator><![CDATA[Freund der Sonne]]></dc:creator><pubDate>Mon, 02 Nov 2009 13:46:19 GMT</pubDate></item></channel></rss>