<?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[memcpy]]></title><description><![CDATA[<p>Hi<br />
Warum funktioniert der gekennzeichnete Code nur in the Release Version der Anwendung, verursacht jedoch im Debug Build einen Error?<br />
Wie kann ich dieses Problem lösen?</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

char* func(char *ch)
{
	char car[8]= { 0, 0, 0, 0, 0, 0, 0, 0 };

	memcpy(ch, car, 8); // ERROR
	ch[8] = 0;          // ERROR

	return ch;
}

int main(int argc, char* argv[])
{
	func(&quot;test&quot;);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/167373/memcpy</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 23:42:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/167373.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 10 Dec 2006 14:17:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to memcpy on Sun, 10 Dec 2006 14:17:37 GMT]]></title><description><![CDATA[<p>Hi<br />
Warum funktioniert der gekennzeichnete Code nur in the Release Version der Anwendung, verursacht jedoch im Debug Build einen Error?<br />
Wie kann ich dieses Problem lösen?</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

char* func(char *ch)
{
	char car[8]= { 0, 0, 0, 0, 0, 0, 0, 0 };

	memcpy(ch, car, 8); // ERROR
	ch[8] = 0;          // ERROR

	return ch;
}

int main(int argc, char* argv[])
{
	func(&quot;test&quot;);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1189517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189517</guid><dc:creator><![CDATA[u123321u]]></dc:creator><pubDate>Sun, 10 Dec 2006 14:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy on Sun, 10 Dec 2006 14:22:34 GMT]]></title><description><![CDATA[<p>Weils schlichtweg falsch is was du da machst:</p>
<pre><code class="language-cpp">func( const char *ch )
</code></pre>
<p>Es muss (und wird) ein Zeiger auf eine Konstanze übergeben, da gibts nix zu ändern! Und beim zweiten Fehler versuchst du einfach über den vorhandenen Bereich zu schreiben.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1189519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189519</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 10 Dec 2006 14:22:34 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy on Sun, 10 Dec 2006 14:28:58 GMT]]></title><description><![CDATA[<p>Ah ok. Wie würde dann die Lösung dieses Problems aussehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1189521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189521</guid><dc:creator><![CDATA[u123321u]]></dc:creator><pubDate>Sun, 10 Dec 2006 14:28:58 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy on Sun, 10 Dec 2006 14:32:20 GMT]]></title><description><![CDATA[<p>Ich seh kein Problem, daher gibts auch keine Lösung dafür. Das was du machen willst ist falsch!</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1189525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189525</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 10 Dec 2006 14:32:20 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy on Sun, 10 Dec 2006 16:40:30 GMT]]></title><description><![CDATA[<p>Das erste Problem ist, dass &quot;test&quot; eine Konstante ist. Dh, dieser Speicher darf nicht überschrieben werden. Lösung: erstelle eine Kopie.</p>
<pre><code class="language-cpp">char test[...] = &quot;test&quot;;
func(test);
</code></pre>
<p>Das zweite Problem ist, dass du in func() auf das neunte Element von ch zugreifst. ch hat aber nur 5 (4 + 1 abschliessendes Nullzeichen) Elemente, welche, wie bereits erwähnt, auch noch schreibgeschützt sind. Lösung: erstelle ch mit ausreichend Speicherplatz.</p>
<pre><code class="language-cpp">char test[9] = &quot;test&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1189591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189591</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 10 Dec 2006 16:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy on Sun, 10 Dec 2006 18:24:46 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>Das erste Problem ist, dass &quot;test&quot; eine Konstante ist. Dh, dieser Speicher darf nicht überschrieben werden. Lösung: erstelle eine Kopie.</p>
<pre><code class="language-cpp">char test[...] = &quot;test&quot;;
func(test);
</code></pre>
<p>Das zweite Problem ist, dass du in func() auf das neunte Element von ch zugreifst. ch hat aber nur 5 (4 + 1 abschliessendes Nullzeichen) Elemente, welche, wie bereits erwähnt, auch noch schreibgeschützt sind. Lösung: erstelle ch mit ausreichend Speicherplatz.</p>
<pre><code class="language-cpp">char test[9] = &quot;test&quot;;
</code></pre>
</blockquote>
<p>Naja, doppelt gemoppelt hält besser, oder? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1189678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1189678</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 10 Dec 2006 18:24:46 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy on Mon, 11 Dec 2006 13:26:05 GMT]]></title><description><![CDATA[<p>Danke sehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1190099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1190099</guid><dc:creator><![CDATA[u123321u]]></dc:creator><pubDate>Mon, 11 Dec 2006 13:26:05 GMT</pubDate></item></channel></rss>