<?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[Aufruf des Kopierkonstruktors erzeugt Zugriffsverletzung]]></title><description><![CDATA[<pre><code class="language-cpp">in RawImage.h

RawImage(const RawImage&amp; source); // der Kopierkonstruktor
RawImage&amp; operator=(const RawImage&amp; source); // der Zuweisungsoperator

in RawImage.cpp

RawImage::RawImage(const RawImage&amp; source)
{
	//copyFrom(source);
	//DebugF(&quot;RawImage(const RawImage&amp; source) source.m_fileName = %s\n&quot;,source.m_fileName.c_str());
}
RawImage&amp; RawImage::operator=(const RawImage&amp; source)
{
	std::string filename = source.getFileName();
	DebugF(&quot;RawImage::operator=(const RawImage&amp; source) source.m_fileName = %s\n&quot;,filename.c_str());

	copyFrom(source);
	return *this; // als Referenz zurückgeben
}
</code></pre>
<p>ein Code wie dieser:</p>
<p>RawImage obj1;<br />
RawImage* imageP;</p>
<p>imageP = new RawImage(obj1); // mit Kopierkonstruktor</p>
<p>erzeugt in VisualStudio9 :<br />
Eine Ausnahme (erste Chance) bei 0x7c97d811 in prog.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xbaadf005</p>
<p>Das Programm startet ganz normal, es bricht nicht ab.<br />
Die Ausgabe steht unten im AusgabeFenster von VS</p>
<p>wenn ich es so mache</p>
<p>imageP = new RawImage();<br />
(*imageP) = obj1; // mit dem Zuweisungsoperator</p>
<p>geht es, wobei das ja nicht Sinn der Sache sein kann</p>
<p>Es ist auch völlig egal, ob im Kopierkonstruktor Code steht oder nicht,<br />
wobei aber das Argument normal übergeben wird und ich es, zB. zur Ausgabe des Dateinamens, benutzen kann.</p>
<p>Weiß vielleicht jemand eine Lösung oder den Grund dafür ?</p>
<p>Mfg</p>
<p>Winnetou11</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242512/aufruf-des-kopierkonstruktors-erzeugt-zugriffsverletzung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 00:10:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242512.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Jun 2009 16:19:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aufruf des Kopierkonstruktors erzeugt Zugriffsverletzung on Thu, 04 Jun 2009 16:19:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">in RawImage.h

RawImage(const RawImage&amp; source); // der Kopierkonstruktor
RawImage&amp; operator=(const RawImage&amp; source); // der Zuweisungsoperator

in RawImage.cpp

RawImage::RawImage(const RawImage&amp; source)
{
	//copyFrom(source);
	//DebugF(&quot;RawImage(const RawImage&amp; source) source.m_fileName = %s\n&quot;,source.m_fileName.c_str());
}
RawImage&amp; RawImage::operator=(const RawImage&amp; source)
{
	std::string filename = source.getFileName();
	DebugF(&quot;RawImage::operator=(const RawImage&amp; source) source.m_fileName = %s\n&quot;,filename.c_str());

	copyFrom(source);
	return *this; // als Referenz zurückgeben
}
</code></pre>
<p>ein Code wie dieser:</p>
<p>RawImage obj1;<br />
RawImage* imageP;</p>
<p>imageP = new RawImage(obj1); // mit Kopierkonstruktor</p>
<p>erzeugt in VisualStudio9 :<br />
Eine Ausnahme (erste Chance) bei 0x7c97d811 in prog.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xbaadf005</p>
<p>Das Programm startet ganz normal, es bricht nicht ab.<br />
Die Ausgabe steht unten im AusgabeFenster von VS</p>
<p>wenn ich es so mache</p>
<p>imageP = new RawImage();<br />
(*imageP) = obj1; // mit dem Zuweisungsoperator</p>
<p>geht es, wobei das ja nicht Sinn der Sache sein kann</p>
<p>Es ist auch völlig egal, ob im Kopierkonstruktor Code steht oder nicht,<br />
wobei aber das Argument normal übergeben wird und ich es, zB. zur Ausgabe des Dateinamens, benutzen kann.</p>
<p>Weiß vielleicht jemand eine Lösung oder den Grund dafür ?</p>
<p>Mfg</p>
<p>Winnetou11</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721209</guid><dc:creator><![CDATA[Winnetou11]]></dc:creator><pubDate>Thu, 04 Jun 2009 16:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to Aufruf des Kopierkonstruktors erzeugt Zugriffsverletzung on Thu, 04 Jun 2009 16:26:18 GMT]]></title><description><![CDATA[<p>Winnetou11 schrieb:</p>
<blockquote>
<p>Weiß vielleicht jemand eine Lösung oder den Grund dafür ?</p>
</blockquote>
<p>Mit dem bisschen was du uns zeigst eher nicht. Damit man hier sinnvoll mit der Fehleranalyse starten kann, brauchen wir wohl mindestens die Membervariablen zu wissen, den vollständen Copykonstruktor und Konstruktor.</p>
<p>Wahrscheinlich machst du irgendwo einen Speicherfehler. Greifst auf uninitialisierten oder bereits gelöschten Speicher zu.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721214</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 04 Jun 2009 16:26:18 GMT</pubDate></item><item><title><![CDATA[Reply to Aufruf des Kopierkonstruktors erzeugt Zugriffsverletzung on Thu, 04 Jun 2009 22:11:56 GMT]]></title><description><![CDATA[<p>Im Konstruktor werden nur 4 double auf 0 gesetzt,<br />
sonst passiert nix. Der Kopierkonstruktor ist wie im Code zu sehen leer.<br />
Also ich habe die Zeilen - 2 Stück - auskommentiert, der Fehler tritt trotzdem auf.</p>
<p>Da muss es ein Speicherfehler sein oder etwas anderes komisches.<br />
Nur dürfte dies nicht von dieser Klasse kommen, da sie erst nach einer lade-Methode überhaupt etwas macht und vor<br />
RawImage obj1;<br />
RawImage* imageP;</p>
<p>imageP = new RawImage(obj1); // mit Kopierkonstruktor</p>
<p>passiert nix weiter.</p>
<p>Dachte, vielleicht hatte jemand schon ähnliches erlebt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721456</guid><dc:creator><![CDATA[Winnetou11]]></dc:creator><pubDate>Thu, 04 Jun 2009 22:11:56 GMT</pubDate></item><item><title><![CDATA[Reply to Aufruf des Kopierkonstruktors erzeugt Zugriffsverletzung on Fri, 05 Jun 2009 11:50:24 GMT]]></title><description><![CDATA[<p>Das Problem bei einem Speicherfehler ist, dass er nicht dort her kommen muss, wo er angezeigt wird. Sprich, wenn du irgendwo einen Mist gebaut hast, dann kann der später bei einer völlig unscheinbaren Aktion ein Problem verursachen. Das ist ja das eklige an &quot;undefined behavior&quot;. Es kann alles passieren und so etwas ähnliches ist mir auch mal passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1721705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1721705</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 05 Jun 2009 11:50:24 GMT</pubDate></item></channel></rss>