<?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[Zugriffsverletzung bei operator+]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche gerade mir eine eigene String-Klasse zu schreiben. Ich habe kein Ahnung warum, aber zur Laufzeit produziert das Programm immer einen Fehler:</p>
<p>Das ist die Funktion:</p>
<pre><code class="language-cpp">//Erstellt einen neuen String durch anfügen des rechten (rhs) an den linken
String String::operator+(const String &amp; rhs)
{
    //gesamtlänge bestimmen (itsLen=Länge eines Strings, itsString= char * des strings)
    int totalLen=itsLen+rhs.GetLen();
    int i,j;
    //neuen String erstellen
    String temp(totalLen);
    //Strings zusammenfügen
    for (i=0;i&lt;itsLen;i++)
    {
        temp[i]=itsString[i];
    }    
    for (j=0;j&lt;rhs.GetLen();i++,j++)
    {
        temp[i]=rhs[j];
    }        
    temp[totalLen]='\0';
    return temp; //&lt;-- Hier passiert der Fehler
}
</code></pre>
<p>Der Befehl ist eine einfache Anweisung &quot;String1=(String2+String3);&quot;.. Den &quot;operator=&quot; habe ich bereits geschrieben und er funktioniert, aber bei &quot;operator+&quot; erhalte ich immer den gleichen Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Lasse ich das Programm durchlaufen, gibt die Addition der Strings Null zurück, &quot;String1&quot; ist dann also einfach leer. Erst bei der Schrittweise-Fehlersuche erkennt er eine Zugriffsverletzung.</p>
<p>Achja, Den temporären String erstelle ich so:</p>
<pre><code class="language-cpp">//Privater Hilfs-Konstruktor
String::String(int len)
{
    itsString=new char[len+1];
    int i;
    for(i=0;i&lt;=len;i++) 
    {
        itsString[i]='\0';
    }
}
</code></pre>
<p>Kann mir jemand helfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180306/zugriffsverletzung-bei-operator</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 17:44:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180306.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 May 2007 10:09:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriffsverletzung bei operator+ on Tue, 01 May 2007 10:09:47 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche gerade mir eine eigene String-Klasse zu schreiben. Ich habe kein Ahnung warum, aber zur Laufzeit produziert das Programm immer einen Fehler:</p>
<p>Das ist die Funktion:</p>
<pre><code class="language-cpp">//Erstellt einen neuen String durch anfügen des rechten (rhs) an den linken
String String::operator+(const String &amp; rhs)
{
    //gesamtlänge bestimmen (itsLen=Länge eines Strings, itsString= char * des strings)
    int totalLen=itsLen+rhs.GetLen();
    int i,j;
    //neuen String erstellen
    String temp(totalLen);
    //Strings zusammenfügen
    for (i=0;i&lt;itsLen;i++)
    {
        temp[i]=itsString[i];
    }    
    for (j=0;j&lt;rhs.GetLen();i++,j++)
    {
        temp[i]=rhs[j];
    }        
    temp[totalLen]='\0';
    return temp; //&lt;-- Hier passiert der Fehler
}
</code></pre>
<p>Der Befehl ist eine einfache Anweisung &quot;String1=(String2+String3);&quot;.. Den &quot;operator=&quot; habe ich bereits geschrieben und er funktioniert, aber bei &quot;operator+&quot; erhalte ich immer den gleichen Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Lasse ich das Programm durchlaufen, gibt die Addition der Strings Null zurück, &quot;String1&quot; ist dann also einfach leer. Erst bei der Schrittweise-Fehlersuche erkennt er eine Zugriffsverletzung.</p>
<p>Achja, Den temporären String erstelle ich so:</p>
<pre><code class="language-cpp">//Privater Hilfs-Konstruktor
String::String(int len)
{
    itsString=new char[len+1];
    int i;
    for(i=0;i&lt;=len;i++) 
    {
        itsString[i]='\0';
    }
}
</code></pre>
<p>Kann mir jemand helfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1276781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276781</guid><dc:creator><![CDATA[TH3LL]]></dc:creator><pubDate>Tue, 01 May 2007 10:09:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei operator+ on Tue, 01 May 2007 10:17:45 GMT]]></title><description><![CDATA[<p>Wie sieht der Copykonstruktor aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1276787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276787</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 01 May 2007 10:17:45 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei operator+ on Tue, 01 May 2007 15:24:01 GMT]]></title><description><![CDATA[<p>Hmm.. ich habe noch den Standardkopierkonstruktor... aaaach. Daran könnte es liegen!</p>
<p>&quot;itsString&quot; ist ein char * ... dann brauche ich ja eine tiefe Kopie, nicht wahr?</p>
<p>.. Werde das gleich mal testen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1276995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276995</guid><dc:creator><![CDATA[TH3LL]]></dc:creator><pubDate>Tue, 01 May 2007 15:24:01 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei operator+ on Tue, 01 May 2007 15:32:22 GMT]]></title><description><![CDATA[<p>Nein... funktioniert immer noch nicht:</p>
<pre><code class="language-cpp">//Kopierkonstruktor
String::String(const String &amp; rhs)
{
    itsLen=rhs.GetLen(); //Länge übernehmen
    itsString= new char[itsLen+1]; //Neuen String erstellen
    int i;
    //itsString übernehmen
    for (i=0;i&lt;itsLen;i++)
    {
        itsString[i]=rhs[i];
    }
    itsString[itsLen]='\0';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1277003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277003</guid><dc:creator><![CDATA[TH3LL]]></dc:creator><pubDate>Tue, 01 May 2007 15:32:22 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei operator+ on Tue, 01 May 2007 15:49:32 GMT]]></title><description><![CDATA[<p>Dein &quot;Hilfs-Konstruktor&quot; initialisiert itsLen nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277016</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 01 May 2007 15:49:32 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei operator+ on Tue, 01 May 2007 21:11:21 GMT]]></title><description><![CDATA[<p>Wwaaaaah <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>So simpel... ja das wars <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="😉"
    /> danke..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277200</guid><dc:creator><![CDATA[TH3LL]]></dc:creator><pubDate>Tue, 01 May 2007 21:11:21 GMT</pubDate></item></channel></rss>