<?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[Ausnahmefehler bei Zeiger]]></title><description><![CDATA[<p>Ich hab folgendes Problem:<br />
Diese Codezeile verursacht beim Debugging einen ausnahmefehler:</p>
<pre><code>*erPtr = 'K';
</code></pre>
<p>Ich habs auch mit anderen Zeigern probiert, aber es kommt immer diese Meldung:</p>
<p>Unbehandelte Ausnahme bei 0x00411706 in testus.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00417850.</p>
<p>Meine Entwicklungsumgebung ist diese Visual C++ 2008 Express Edition.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/220200/ausnahmefehler-bei-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 14:02:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220200.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Aug 2008 07:55:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ausnahmefehler bei Zeiger on Wed, 13 Aug 2008 07:55:39 GMT]]></title><description><![CDATA[<p>Ich hab folgendes Problem:<br />
Diese Codezeile verursacht beim Debugging einen ausnahmefehler:</p>
<pre><code>*erPtr = 'K';
</code></pre>
<p>Ich habs auch mit anderen Zeigern probiert, aber es kommt immer diese Meldung:</p>
<p>Unbehandelte Ausnahme bei 0x00411706 in testus.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00417850.</p>
<p>Meine Entwicklungsumgebung ist diese Visual C++ 2008 Express Edition.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563774</guid><dc:creator><![CDATA[wendle3467]]></dc:creator><pubDate>Wed, 13 Aug 2008 07:55:39 GMT</pubDate></item><item><title><![CDATA[Reply to Ausnahmefehler bei Zeiger on Wed, 13 Aug 2008 07:56:49 GMT]]></title><description><![CDATA[<p>Und? Vermutlich wird erPtr auf nichts zeigen. Lösung: Lass erPtr auf etwas gültiges zeigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563775</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 13 Aug 2008 07:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to Ausnahmefehler bei Zeiger on Wed, 13 Aug 2008 08:20:20 GMT]]></title><description><![CDATA[<p>Ich bin noch ein ziemlicher Anfänger und hab rumprobiert.<br />
Den Zeiger hab ich so initialisiert:</p>
<pre><code>char *erPtr = &quot;Gatze&quot;;
</code></pre>
<p>Dann wollt ich das 'G' mit einem 'K' überschreiben:</p>
<pre><code>*erPtr = 'K';
</code></pre>
<p>Wo liegt mein Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563784</guid><dc:creator><![CDATA[wendle3467]]></dc:creator><pubDate>Wed, 13 Aug 2008 08:20:20 GMT</pubDate></item><item><title><![CDATA[Reply to Ausnahmefehler bei Zeiger on Wed, 13 Aug 2008 08:27:16 GMT]]></title><description><![CDATA[<p>Ah, damit kann man schon eine genauere Beschreibung der Ursache abliefern: Du bist hier über eine der Fallen von C und C++ gestolpert, nämlich dass Stringliterale (im Quelltext direkt vorkommende Strings in &quot;&quot;) konstant sind. Der Compiler darf sie in einem Read-Only-Bereich ablegen.</p>
<p>Leider darf man - aus historischen Gründen - solche konstanten Stringliterale nicht-konstanten Stringzeigern zuweisen. Damit zeigt erPtr auf einen Bereich, in dem das Schreiben verboten ist, der Compiler kann dies aber nicht abfangen. Du kannst Dich davor schützen, indem Du das Bezeigte konstant machst:</p>
<pre><code class="language-cpp">char const * erPtr = &quot;Gatze&quot;;
*erPtr = 'K'; // wird einen Compilerfehler ergeben
</code></pre>
<p>Möchtest Du eine änderbare Zeichenfolge haben, lege diese auf dem Stack als Array an. Der Compiler reserviert dann ausreichend <em>änderbaren</em> Speicher und kopiert den String dort hin.</p>
<pre><code class="language-cpp">char erStr[] = &quot;Gatze&quot;;
*erStr = 'K'; // wird funktionieren
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1563790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563790</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 13 Aug 2008 08:27:16 GMT</pubDate></item><item><title><![CDATA[Reply to Ausnahmefehler bei Zeiger on Wed, 13 Aug 2008 08:28:30 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Das geht nicht weil du so ein konstantes String-Literal erstellst. Du darfst erPtr nicht mehr verändern. Und auch beim Austausch eines Zeichens must du noch den Index der Position angeben.<br />
Benutzt einfach std::string</p>
<pre><code class="language-cpp">#include &lt;string&gt;
...
std::string test = &quot;Gatze&quot;;
test[0] = 'K';
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563792</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 13 Aug 2008 08:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to Ausnahmefehler bei Zeiger on Wed, 13 Aug 2008 08:41:53 GMT]]></title><description><![CDATA[<p>Vielen Dank!<br />
Es hat geklappt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563797</guid><dc:creator><![CDATA[wendle3467]]></dc:creator><pubDate>Wed, 13 Aug 2008 08:41:53 GMT</pubDate></item></channel></rss>