<?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[AccessViolation]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich lese eine Datei in ein char-Array ein. Der eingelesene Text ist &quot;verschlüsselt&quot; indem jedes Bit invertiert ist.</p>
<p>ich versuche die Verschlüsselung durch folgende Schleife rückgängig zu machen!</p>
<pre><code class="language-cpp">char cZeichen;

for( ii = 0; ii &lt; iBytesRead; ii++ )
{
   cZeichen = ~ *pBuffer;
   m_asInhalt += cZeichen; //m_as = AnsiString Objekt
   pBuffer++;
}

delete [] pBuffer;
</code></pre>
<p>Das klappt auch ganz gut, bis die Schleife an das Ende ankommt. Hier wirft sie mit dann eine AccessViolation. Ich denke mir, weil ich im letzten Schritt mit<br />
pBuffer++ an eine Stelle zeige, die der Pointer nicht kennt, oder?<br />
Wenn nun das delete ausgeführt werden soll, passiert diese Fehler.<br />
Kann mir jemand helfen, wie ich den invertierten Inhalt aus pBuffer in die AnsiString Variable &quot;m_asInhalt&quot; (aber dann unverschlüsselt!) bekomme??</p>
<p>Vielen Dank für die Antworten</p>
<p>GRuß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155154/accessviolation</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 18:45:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155154.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Aug 2006 08:59:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to AccessViolation on Thu, 03 Aug 2006 08:59:11 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich lese eine Datei in ein char-Array ein. Der eingelesene Text ist &quot;verschlüsselt&quot; indem jedes Bit invertiert ist.</p>
<p>ich versuche die Verschlüsselung durch folgende Schleife rückgängig zu machen!</p>
<pre><code class="language-cpp">char cZeichen;

for( ii = 0; ii &lt; iBytesRead; ii++ )
{
   cZeichen = ~ *pBuffer;
   m_asInhalt += cZeichen; //m_as = AnsiString Objekt
   pBuffer++;
}

delete [] pBuffer;
</code></pre>
<p>Das klappt auch ganz gut, bis die Schleife an das Ende ankommt. Hier wirft sie mit dann eine AccessViolation. Ich denke mir, weil ich im letzten Schritt mit<br />
pBuffer++ an eine Stelle zeige, die der Pointer nicht kennt, oder?<br />
Wenn nun das delete ausgeführt werden soll, passiert diese Fehler.<br />
Kann mir jemand helfen, wie ich den invertierten Inhalt aus pBuffer in die AnsiString Variable &quot;m_asInhalt&quot; (aber dann unverschlüsselt!) bekomme??</p>
<p>Vielen Dank für die Antworten</p>
<p>GRuß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109714</guid><dc:creator><![CDATA[skluge]]></dc:creator><pubDate>Thu, 03 Aug 2006 08:59:11 GMT</pubDate></item><item><title><![CDATA[Reply to AccessViolation on Thu, 03 Aug 2006 09:13:13 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Du schaltest ja den Pointer immer weiter und versuchst dann einen Speicherbereich zu löschen der dir nicht gehört. Entweder du nimmst für die Invertierung eine Kopie des Zeigers auf pBuffer oder (besser) du nutzt die Indizierung.</p>
<pre><code class="language-cpp">for( ii = 0; ii &lt; iBytesRead; ii++ )
{
   m_asInhalt += ~ pBuffer[ii]; //m_as = AnsiString Objekt
}
delete [] pBuffer;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1109729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109729</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 03 Aug 2006 09:13:13 GMT</pubDate></item><item><title><![CDATA[Reply to AccessViolation on Thu, 03 Aug 2006 09:19:12 GMT]]></title><description><![CDATA[<p>Schon mal danke Braunstein!</p>
<p>Das einzige was mich jetzt noch ein wenig stört, ich aber nicht weiß, ob es jetzt nur an dem Debuggen liegt ist, dass in den AnsiString die ASCII-Dezimalzahlen geschrieben werden. Aber in den String sollen ja die richtigen Zeichen rein!</p>
<p>Also das erst Zeichen ist ein &quot;K&quot; -&gt; geschrieben wird eine 75 in den String usw.<br />
Kannst du mir grade noch sagen, wie ich das zeichen statt der Ziffer in den String bekomm??</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109735</guid><dc:creator><![CDATA[skluge]]></dc:creator><pubDate>Thu, 03 Aug 2006 09:19:12 GMT</pubDate></item><item><title><![CDATA[Reply to AccessViolation on Thu, 03 Aug 2006 09:22:07 GMT]]></title><description><![CDATA[<p>Hat sich erledigt! habs mit einer char-Variablen geregelt.</p>
<pre><code class="language-cpp">cZeichen = ~ pBuffer[ii];
            m_asZErf2000_Inhalt += cZeichen;
</code></pre>
<p>Trotzdem danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109738</guid><dc:creator><![CDATA[skluge]]></dc:creator><pubDate>Thu, 03 Aug 2006 09:22:07 GMT</pubDate></item></channel></rss>