<?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[src and dest overlap in memcpy() : unverständlich]]></title><description><![CDATA[<p>Hallo ich bekomme bei dem unten stehenden code über valgrind ein src and destination overlap bei memcpy() in der Funktion Solution() wobei das memcpy dort nur in einer subroutine auftritt und zwar bei copy-vector().</p>
<p>Wo liegt denn mein Fehler?</p>
<p>Der code ist vereinfacht!!!</p>
<pre><code class="language-cpp">Class::function()
{

	double			*A 			= NULL,
				  *mk 		= NULL,
				  *ek 		= NULL;

	for (int step = -1; step &lt; max_impr_steps; step++)
	{

                //Gibt pointer auf array zurück
		A = Create_A(...);

		Solution(A, mk, ek);

               //Bei spezieller condition breche ich schleife ab - deswegen unten
              //nochmal delete

		delete [] mk;
		delete [] A;
		delete [] ek;
	}

	//do_something....

	//Free heap storage last time
	if (mk)		delete [] mk;
	if (ek)		delete [] ek;
	if (A)		delete [] A;
}

Class::Solution(double*	 A_orig, 
			double*&amp; 	mk_Hat,
			double*&amp; 	ek_Hat
			)
{

	double			*A = NULL;

	A = Copy_Vector(A_orig);

	mk = Create_ek(...);	

	ek = Copy_Vector(mk);

        //do_something....

	delete [] A;
}

Class::Copy_Vector(T*	in, const int len)
{
	T*	out;
	out = new T[len];
	memcpy(out, in, len * sizeof(T));

	return out;
}
</code></pre>
<p>der fehler lautet:</p>
<pre><code>==6883== Source and destination overlap in memcpy(0x59B1CF0, 0x59B1CF0, 8)
==6883==    at 0x4022ED6: memcpy (mc_replace_strmem.c:116)
==6883==    by 0x804AAE5: Class::Solution(double*double*&amp;, double*&amp;,) (in /...)
==6883==    by 0x804D620: Class::function() (in /...)
==6883==    by 0x8049922: main (in /...)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/192432/src-and-dest-overlap-in-memcpy-unverständlich</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 10:01:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192432.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Sep 2007 09:43:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to src and dest overlap in memcpy() : unverständlich on Fri, 14 Sep 2007 09:43:51 GMT]]></title><description><![CDATA[<p>Hallo ich bekomme bei dem unten stehenden code über valgrind ein src and destination overlap bei memcpy() in der Funktion Solution() wobei das memcpy dort nur in einer subroutine auftritt und zwar bei copy-vector().</p>
<p>Wo liegt denn mein Fehler?</p>
<p>Der code ist vereinfacht!!!</p>
<pre><code class="language-cpp">Class::function()
{

	double			*A 			= NULL,
				  *mk 		= NULL,
				  *ek 		= NULL;

	for (int step = -1; step &lt; max_impr_steps; step++)
	{

                //Gibt pointer auf array zurück
		A = Create_A(...);

		Solution(A, mk, ek);

               //Bei spezieller condition breche ich schleife ab - deswegen unten
              //nochmal delete

		delete [] mk;
		delete [] A;
		delete [] ek;
	}

	//do_something....

	//Free heap storage last time
	if (mk)		delete [] mk;
	if (ek)		delete [] ek;
	if (A)		delete [] A;
}

Class::Solution(double*	 A_orig, 
			double*&amp; 	mk_Hat,
			double*&amp; 	ek_Hat
			)
{

	double			*A = NULL;

	A = Copy_Vector(A_orig);

	mk = Create_ek(...);	

	ek = Copy_Vector(mk);

        //do_something....

	delete [] A;
}

Class::Copy_Vector(T*	in, const int len)
{
	T*	out;
	out = new T[len];
	memcpy(out, in, len * sizeof(T));

	return out;
}
</code></pre>
<p>der fehler lautet:</p>
<pre><code>==6883== Source and destination overlap in memcpy(0x59B1CF0, 0x59B1CF0, 8)
==6883==    at 0x4022ED6: memcpy (mc_replace_strmem.c:116)
==6883==    by 0x804AAE5: Class::Solution(double*double*&amp;, double*&amp;,) (in /...)
==6883==    by 0x804D620: Class::function() (in /...)
==6883==    by 0x8049922: main (in /...)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1365116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365116</guid><dc:creator><![CDATA[testo]]></dc:creator><pubDate>Fri, 14 Sep 2007 09:43:51 GMT</pubDate></item><item><title><![CDATA[Reply to src and dest overlap in memcpy() : unverständlich on Fri, 14 Sep 2007 09:52:06 GMT]]></title><description><![CDATA[<p>EDIT:!!!!!!!!!!!!!!!!!!!!!!!!!!</p>
<p>Ist gelöst - der fehler lag wo anders.....ich hatte noch ein memcpy() wo wirklich src und dest overlap war!!!!!!!!!!!1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365122</guid><dc:creator><![CDATA[testo]]></dc:creator><pubDate>Fri, 14 Sep 2007 09:52:06 GMT</pubDate></item><item><title><![CDATA[Reply to src and dest overlap in memcpy() : unverständlich on Fri, 14 Sep 2007 10:15:57 GMT]]></title><description><![CDATA[<p>testo schrieb:</p>
<blockquote>
<p>EDIT:!!!!!!!!!!!!!!!!!!!!!!!!!!</p>
<p>Ist gelöst - der fehler lag wo anders.....ich hatte noch ein memcpy() wo wirklich src und dest overlap war!!!!!!!!!!!1</p>
</blockquote>
<p>Doll, 38 Ausrufezeichen (die '1' mitgezählt) vs 85 Buchstaben.. Su!pe!r Q!uo!te!, ma!ch!t e!in! Au!sr!uf!ez!ei!ch!en! au!f z!we!i B!uc!hs!ta!be!n <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /><br />
Was zur Hölle verspricht man sich davon?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365143</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 14 Sep 2007 10:15:57 GMT</pubDate></item><item><title><![CDATA[Reply to src and dest overlap in memcpy() : unverständlich on Fri, 14 Sep 2007 10:23:51 GMT]]></title><description><![CDATA[<p>Mehr Aufmerksamkeit<br />
Aber das verhält sich wie mit Spam, je mehr Ausrufezeichen desto weniger lesenswert ist meist der Beitrag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365147</guid><dc:creator><![CDATA[*john 0]]></dc:creator><pubDate>Fri, 14 Sep 2007 10:23:51 GMT</pubDate></item><item><title><![CDATA[Reply to src and dest overlap in memcpy() : unverständlich on Fri, 14 Sep 2007 11:23:54 GMT]]></title><description><![CDATA[<p>Ok, das nächste mal lasse ich euch Fehler suchen obwohl es gar keinen gibt. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1365196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365196</guid><dc:creator><![CDATA[testo]]></dc:creator><pubDate>Fri, 14 Sep 2007 11:23:54 GMT</pubDate></item><item><title><![CDATA[Reply to src and dest overlap in memcpy() : unverständlich on Fri, 14 Sep 2007 11:38:21 GMT]]></title><description><![CDATA[<p>testo schrieb:</p>
<blockquote>
<p>Ok, das nächste mal lasse ich euch Fehler suchen obwohl es gar keinen gibt. <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>
</blockquote>
<p>Ach Quatsch, ist doch gut, dass du Bescheid gesagt hast! Ich hab mich nur gewundert, warum allein schon das &quot;EDIT:&quot; 26 Ausrufezeichen braucht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1365205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365205</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 14 Sep 2007 11:38:21 GMT</pubDate></item></channel></rss>