<?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[Problem bei Zeigererhöhung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem das ich ein Feld in ein anderes kopieren möchte und dabei einmal einen Datensatz überspringen.</p>
<pre><code>for(int i=0, j=0; j &lt; KontrollObj.AnzKunden; i++, j++) //Feld neu einordnen
	{
		if(i == (PosKunde-1))
		{	
			j++;
		}
		KontrollObj.pKundeFeld[i] = TempKontroll.pKundeFeld[j];
	}
</code></pre>
<p>KontrollObj.pKundeFeld[i] ist um ein Element kleiner als TempKontroll.pKundeFeld[j] (deswegen auch das &quot;überspringen&quot;);</p>
<p>Wenn ich die Felder normal (ohne Zeigererhöhung) kopiere ist das überhaupt kein Problem nur mit bringt er einen AssemblerFehler</p>
<p>opertor = ist mit</p>
<pre><code>inline CKunde&amp; CKunde::operator=(const CKunde&amp; Objekt)
	{
	if(this == &amp;Objekt)
		return *this;

	KundenNr = Objekt.KundenNr;
	Vorname = Objekt.Vorname;
	Nachname = Objekt.Nachname;
	Strasse = Objekt.Strasse;
	Postleitzahl = Objekt.Postleitzahl;
	Ort = Objekt.Ort;
	pKonten = Objekt.pKonten;
	Anz = Objekt.Anz;

	return *this;
	}
</code></pre>
<p>Bitte um Hilfe. Ich versteh diesen Fehler nämlich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/318027/problem-bei-zeigererhöhung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 19:48:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/318027.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 Jun 2013 08:50:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Fri, 28 Jun 2013 08:50:25 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem das ich ein Feld in ein anderes kopieren möchte und dabei einmal einen Datensatz überspringen.</p>
<pre><code>for(int i=0, j=0; j &lt; KontrollObj.AnzKunden; i++, j++) //Feld neu einordnen
	{
		if(i == (PosKunde-1))
		{	
			j++;
		}
		KontrollObj.pKundeFeld[i] = TempKontroll.pKundeFeld[j];
	}
</code></pre>
<p>KontrollObj.pKundeFeld[i] ist um ein Element kleiner als TempKontroll.pKundeFeld[j] (deswegen auch das &quot;überspringen&quot;);</p>
<p>Wenn ich die Felder normal (ohne Zeigererhöhung) kopiere ist das überhaupt kein Problem nur mit bringt er einen AssemblerFehler</p>
<p>opertor = ist mit</p>
<pre><code>inline CKunde&amp; CKunde::operator=(const CKunde&amp; Objekt)
	{
	if(this == &amp;Objekt)
		return *this;

	KundenNr = Objekt.KundenNr;
	Vorname = Objekt.Vorname;
	Nachname = Objekt.Nachname;
	Strasse = Objekt.Strasse;
	Postleitzahl = Objekt.Postleitzahl;
	Ort = Objekt.Ort;
	pKonten = Objekt.pKonten;
	Anz = Objekt.Anz;

	return *this;
	}
</code></pre>
<p>Bitte um Hilfe. Ich versteh diesen Fehler nämlich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334949</guid><dc:creator><![CDATA[jackasses]]></dc:creator><pubDate>Fri, 28 Jun 2013 08:50:25 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Fri, 28 Jun 2013 08:55:11 GMT]]></title><description><![CDATA[<p>Assembler-Fehler hatte ich beim C++-Programieren noch nie. Zeig den doch mal (*hint*)</p>
<p>Was sind das alles überhaupt für Datenstrukturen? Zeig mal mehr Code. CInteressant cwären cdie CDeklaration cvon CKunde und der Kontext von der Kopieroperation.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334950</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 28 Jun 2013 08:55:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Fri, 28 Jun 2013 09:35:41 GMT]]></title><description><![CDATA[<p>okay doch kein Assembler Fehler:</p>
<p>Unbehandelte Ausnahme bei 0x5376EA8E (msvcr110d.dll) in Konto.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xABABABAB</p>
<p>Kontext:</p>
<p>Ich hatte einfach die Idee bei einem Feld von Kunden einen Kunden zu löschen.<br />
Somit Feld kopiert in ein temporäres Feld und neuen speicher allokiert für die benötigte Grösse.<br />
Dann Feld von Kunden wieder mit temporären Feld füllen, nur dabei den &quot;gelöschten&quot; Kunden auslassen und einfach überspringen.</p>
<p>Deklaration Kunde;</p>
<pre><code>//##ModelId=51C1CB0A01A7
class CKunde
{
  public:

	//##ModelId=51C7E095010B
	 void setKundenNr(int Temp){KundenNr = Temp;}

	//##ModelId=51C7E09D03BB
	 unsigned short getKundenNr(){return KundenNr;}

    //##ModelId=51C1CB8303A4
	void setVorname(string Temp){Vorname = Temp;}

    //##ModelId=51C1CB8303AE
	string getVorname(){return Vorname;}

    //##ModelId=51C1CB8303B8
	void setNachname(string Temp){Nachname = Temp;}

    //##ModelId=51C1CB8303C2
	string getNachname(){return Nachname;}

    //##ModelId=51C1CB8303CD
	void setStrasse(string Temp){Strasse = Temp;}

    //##ModelId=51C1CB8303D8
	string getStrasse(){return Strasse;}

    //##ModelId=51C1CB8303E3
	void setPLZ(string Temp){Postleitzahl = Temp;}

    //##ModelId=51C1CB840006
	string getPLZ(){return Postleitzahl;}

    //##ModelId=51C1CB840012
	void setOrt(string Temp){Ort = Temp;}

    //##ModelId=51C1CB84001E
	string getOrt(){return Ort;}

	//##ModelId=51C7EFCB0091
	void setGeburtsdatum(DATUM Temp){Geburtsdatum = Temp;}

    //##ModelId=51C7EFD4007E
	DATUM getGeburtsdatum(){return Geburtsdatum;}

	//##ModelId=51C8C8370250
	void setAnz(int Temp){Anz = Temp;}

    //##ModelId=51C8C846001D
	int getAnz(){return Anz;}

	//##ModelId=51C968B700B8
	void setpKonten(CKonto* pTemp){pKonten = pTemp;}

    //##ModelId=51C968DA003D
	CKonto* getpKonten(){return pKonten;}

    //##ModelId=51CA14D40119
	CKunde&amp; CKunde::operator=(const CKunde&amp; Objekt);

    //##ModelId=51C1CC3A0188
    CKunde();

    //##ModelId=51C1CC3A01A7
    virtual ~CKunde();

	//##ModelId=51CA157C02E9
    void setAll(KUNDE Daten, CKonto KontoListe, int AnzahlKonten);

    //##ModelId=51CA15A60021
    KUNDE getAll();

  private:
    //##ModelId=51C1CB22028F
    string Vorname;
    //##ModelId=51C1CB270221
    string Nachname;
    //##ModelId=51C1CB2B028F
    string Strasse;
    //##ModelId=51C1CB33036B
    string Postleitzahl;
    //##ModelId=51C1CB3A036F
    string Ort;
    //##ModelId=51C7EFBB02AD
    DATUM Geburtsdatum;
	//##ModelId=51C1DB3E013E
    CKonto* pKonten;
    //##ModelId=51C1E2620248
    int Anz;
    //##ModelId=51C7E07603C9
    int KundenNr;

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2334963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334963</guid><dc:creator><![CDATA[jackasses]]></dc:creator><pubDate>Fri, 28 Jun 2013 09:35:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Fri, 28 Jun 2013 09:50:53 GMT]]></title><description><![CDATA[<p><a href="http://stackoverflow.com/questions/127386/in-visual-studio-c-what-are-the-memory-allocation-representations" rel="nofollow">http://stackoverflow.com/questions/127386/in-visual-studio-c-what-are-the-memory-allocation-representations</a></p>
<p>Der naheliegende Verdacht ist, dass du hier irgendwo manuell mit Pointern rumfrickelst. Ich sehe ein paar rohe Pointer in deinem Code, auch wenn du keinen Code zeigst, der mit diesem tatsächlich etwas tut. Superverdächtig ist auf jeden Fall mal:</p>
<pre><code>pKonten = Objekt.pKonten;
</code></pre>
<ol>
<li></li>
</ol>
<p><a href="http://en.wikipedia.org/wiki/RAII" rel="nofollow">http://en.wikipedia.org/wiki/RAII</a><br />
<a href="http://en.wikipedia.org/wiki/Smart_pointer" rel="nofollow">http://en.wikipedia.org/wiki/Smart_pointer</a><br />
<a href="http://en.wikipedia.org/wiki/Rule_of_three_%28C%2B%2B_programming%29" rel="nofollow">http://en.wikipedia.org/wiki/Rule_of_three_(C%2B%2B_programming)</a><br />
<a href="http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Copy-and-swap" rel="nofollow">http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Copy-and-swap</a><br />
2. Ich vermute einen allgemeinen Designfehler, durch dessen Behebung Ratschlag Nummer 1 überflüssig wird. Wo leben die Konten?<br />
3. <a href="http://en.wikipedia.org/wiki/Special_member_functions" rel="nofollow">http://en.wikipedia.org/wiki/Special_member_functions</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334966</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 28 Jun 2013 09:50:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Fri, 28 Jun 2013 10:08:49 GMT]]></title><description><![CDATA[<p>Okay da muss ich nochmal genau sehen wie ich das beheben kann.</p>
<p>Es wundert mich nur das das sonst funktioniert, nur eben bei dem speziellen Fall zusammen bricht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334969</guid><dc:creator><![CDATA[jackasses]]></dc:creator><pubDate>Fri, 28 Jun 2013 10:08:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Fri, 28 Jun 2013 10:15:21 GMT]]></title><description><![CDATA[<p>CKopierst cdu csonst can cirgendeiner CStelle CKunden? CWenn cder CKopierkonstruktor cnur cdort caufgerufen cwird, cdann csollte cdie CSache cklar csein.</p>
<p>Wie sehen denn Zuweisungsoperator und Destruktor aus? Rufst du irgendwo &quot;delete pKonten&quot; (ggf. mit &quot;[]&quot;) auf?</p>
<p>Was genau ist pKonten überhaupt? Ein dynamisches Array? Ein einzelnes Objekt? Wo wird das erzeugt und wer kümmert sich darum, dass es ordnungsgemäß gelöscht wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2334970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2334970</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 28 Jun 2013 10:15:21 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Fri, 28 Jun 2013 13:12:30 GMT]]></title><description><![CDATA[<p>Gut Ich habe es nochmal kontrolliert und nun funktioniert alles wie gedacht.<br />
Ich Habe mich in ein oder 2 Positionen von Pointern vertan.</p>
<p>Trotzdem großen dank an die schnellen Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2335021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2335021</guid><dc:creator><![CDATA[jackasses]]></dc:creator><pubDate>Fri, 28 Jun 2013 13:12:30 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Sat, 29 Jun 2013 06:13:38 GMT]]></title><description><![CDATA[<p>Die Klasse sieht verdächtig generiert aus. Zumal der Wink mit dem Scheunentor von daddy_felix wahrscheinlich nicht angekommen ist.</p>
<p>Die Klasse verwendet ein using namespace im globalen Namensbereich der Headerdatei. Mach das nie, nie, nie. Nein, niemals!</p>
<p>Zumal const-correctness vollkommen ignoriert wurde (bitte recherchieren und so früh wie möglich anwenden).</p>
<p>Der Fehler mit den wilden (pösen pointern) kannst Du von vorneherein ausschließen, wenn Du einen Container verwendest. Nach der Namensgebung handelt es sich um eine Liste (Sequenz) von Kontenobjekten. std::vector wäre hier angebrachter (wenn Person das Konto besitzt).</p>
<p>Die vielen getter und setter riechen auch irgendwie nach Blähcode. Man sollte nicht zu jedem Attribut ein getter/setter schreiben.</p>
<p>Ave</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2335156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2335156</guid><dc:creator><![CDATA[Stechus Kaktus]]></dc:creator><pubDate>Sat, 29 Jun 2013 06:13:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Sat, 29 Jun 2013 06:43:34 GMT]]></title><description><![CDATA[<p>Ja das ganze muss wohl nochmal überarbeitet werden.</p>
<p>Das rumspielen mit den Pointern ist dem geschuldet das wir solche Strukturen nicht benutzen dürfen, ansonsten hätte ich die Möglichkeiten schon seit anfang an genommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2335163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2335163</guid><dc:creator><![CDATA[jackasses]]></dc:creator><pubDate>Sat, 29 Jun 2013 06:43:34 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Zeigererhöhung on Sat, 29 Jun 2013 07:47:01 GMT]]></title><description><![CDATA[<p>Ich seh schon: Ein Lehrbeispiel fernab jeglicher Realität <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>
<p>Ave</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2335167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2335167</guid><dc:creator><![CDATA[Stechus Kaktus]]></dc:creator><pubDate>Sat, 29 Jun 2013 07:47:01 GMT</pubDate></item></channel></rss>