<?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 mit zeigern?...]]></title><description><![CDATA[<p>hallo leute,</p>
<p>habe n code gebastelt und jetzt funzt der nicht...<br />
ich habe folgendes gemacht...</p>
<p>--------------------------------------------------<br />
**Regression.h</p>
<p>struct myPoint{<br />
double x;<br />
double y;<br />
};</p>
<p>myPoint * aPoints;<br />
int nPoints;</p>
<p>//Hinzufügen der Punkte<br />
int AddPoint ( double x, double y );**</p>
<p>Hier habe ich eine Struktur mit einem Wertepaar x&amp;y entworfen,<br />
dann zeiger auf die struktur und dann AddPoint als funktion für die speicherung.<br />
---------------------------------------------------<br />
**Regression.cpp</p>
<p>int CRegression::AddPoint (double x,double y)<br />
{<br />
myPoint *ptr = new myPoint[nPoints+1]; //Neuen Speicher für ptr holen<br />
if(ptr!=0)<br />
{<br />
memcpy(ptr,aPoints, sizeof(aPoints)); /<em>Inhalt von aPoints<br />
in ptr (1 struct frei für x&amp;y)</em>/<br />
delete aPoints;</p>
<p>ptr[nPoints].x=x; //Letzes struct im ptr füllen!<br />
ptr[nPoints].y=y;</p>
<p>aPoints=ptr; //aPoints erhält adresse von ptr<br />
}<br />
else<br />
{<br />
std::cout &lt;&lt;<br />
&quot;\n---Fehler: Speicher konnte nicht reserviert werden!---&quot;<br />
&lt;&lt; std::endl;<br />
exit(1);<br />
};<br />
}**</p>
<p>Hier will ich zuerst dem Zeiger &quot;ptr&quot; dynamisch einen neuen Speicherbereich zuweisen. Und zwar immer um +1 mehr als der andere gerade hat.</p>
<p>Ich kopiere dann den Inhalt von aPoints nach ptr, lösche aPoints und fülle dann die letzte stelle(+1) mit meinem x&amp;y- wert.</p>
<p>Dann weise ich wieder dem aPoints die adresse, auf die ptr zeigt, zu und fange wieder von vorne an.</p>
<p>Problem:<br />
er bricht ständig bei memcpy ab... &quot;speicherbereichsverletzung&quot; sagt er.</p>
<p>Was mache ich falsch, wo ist der Fehler... vielleicht die Zeiger in memcpy??</p>
<p>vielen dank in voraus....</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194859/memcpy-mit-zeigern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 17:03:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194859.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 11 Oct 2007 15:26:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to memcpy mit zeigern?... on Thu, 11 Oct 2007 15:26:28 GMT]]></title><description><![CDATA[<p>hallo leute,</p>
<p>habe n code gebastelt und jetzt funzt der nicht...<br />
ich habe folgendes gemacht...</p>
<p>--------------------------------------------------<br />
**Regression.h</p>
<p>struct myPoint{<br />
double x;<br />
double y;<br />
};</p>
<p>myPoint * aPoints;<br />
int nPoints;</p>
<p>//Hinzufügen der Punkte<br />
int AddPoint ( double x, double y );**</p>
<p>Hier habe ich eine Struktur mit einem Wertepaar x&amp;y entworfen,<br />
dann zeiger auf die struktur und dann AddPoint als funktion für die speicherung.<br />
---------------------------------------------------<br />
**Regression.cpp</p>
<p>int CRegression::AddPoint (double x,double y)<br />
{<br />
myPoint *ptr = new myPoint[nPoints+1]; //Neuen Speicher für ptr holen<br />
if(ptr!=0)<br />
{<br />
memcpy(ptr,aPoints, sizeof(aPoints)); /<em>Inhalt von aPoints<br />
in ptr (1 struct frei für x&amp;y)</em>/<br />
delete aPoints;</p>
<p>ptr[nPoints].x=x; //Letzes struct im ptr füllen!<br />
ptr[nPoints].y=y;</p>
<p>aPoints=ptr; //aPoints erhält adresse von ptr<br />
}<br />
else<br />
{<br />
std::cout &lt;&lt;<br />
&quot;\n---Fehler: Speicher konnte nicht reserviert werden!---&quot;<br />
&lt;&lt; std::endl;<br />
exit(1);<br />
};<br />
}**</p>
<p>Hier will ich zuerst dem Zeiger &quot;ptr&quot; dynamisch einen neuen Speicherbereich zuweisen. Und zwar immer um +1 mehr als der andere gerade hat.</p>
<p>Ich kopiere dann den Inhalt von aPoints nach ptr, lösche aPoints und fülle dann die letzte stelle(+1) mit meinem x&amp;y- wert.</p>
<p>Dann weise ich wieder dem aPoints die adresse, auf die ptr zeigt, zu und fange wieder von vorne an.</p>
<p>Problem:<br />
er bricht ständig bei memcpy ab... &quot;speicherbereichsverletzung&quot; sagt er.</p>
<p>Was mache ich falsch, wo ist der Fehler... vielleicht die Zeiger in memcpy??</p>
<p>vielen dank in voraus....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382966</guid><dc:creator><![CDATA[dieter.g]]></dc:creator><pubDate>Thu, 11 Oct 2007 15:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy mit zeigern?... on Thu, 11 Oct 2007 15:38:32 GMT]]></title><description><![CDATA[<ol>
<li></li>
</ol>
<pre><code class="language-cpp">if(ptr!=0)
</code></pre>
<p>Bringt nichts, new liefert keinen Null-Ptr (mehr) zurück. Stattdessen fliegt eine Exception.</p>
<ol start="2">
<li></li>
</ol>
<p>delete auf ein new[] = Speicherleck</p>
<p>3. Ist aPoints initalisiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382973</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Thu, 11 Oct 2007 15:38:32 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy mit zeigern?... on Thu, 11 Oct 2007 15:45:14 GMT]]></title><description><![CDATA[<ol start="4">
<li></li>
</ol>
<pre><code class="language-cpp">memcpy(ptr,aPoints, sizeof(aPoints));
</code></pre>
<p>falsche Länge (die Größe des Zeigers aPoints ist unteressant). aPoints uninitialisiert oder NULL ist undefiniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1382981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1382981</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 11 Oct 2007 15:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy mit zeigern?... on Thu, 11 Oct 2007 16:14:48 GMT]]></title><description><![CDATA[<p>aber ich habe doch aPoints in der header-datei initialisiert....</p>
<p>könnte ich einen korrekten ansatz haben?...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383011</guid><dc:creator><![CDATA[dieter.g]]></dc:creator><pubDate>Thu, 11 Oct 2007 16:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy mit zeigern?... on Thu, 11 Oct 2007 16:26:08 GMT]]></title><description><![CDATA[<p>dieter.g schrieb:</p>
<blockquote>
<p>könnte ich einen korrekten ansatz haben?...</p>
</blockquote>
<p>std::vector</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383020</guid><dc:creator><![CDATA[cpt.obvious]]></dc:creator><pubDate>Thu, 11 Oct 2007 16:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy mit zeigern?... on Thu, 11 Oct 2007 17:02:46 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>nicht zu vergessen : sfds</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383043</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 11 Oct 2007 17:02:46 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy mit zeigern?... on Thu, 11 Oct 2007 19:40:09 GMT]]></title><description><![CDATA[<p>dieter.g schrieb:</p>
<blockquote>
<p>aber ich habe doch aPoints in der header-datei initialisiert....</p>
</blockquote>
<p>Davon ist in deinem Code aber nichts zu sehen. Zumindest keine gültige Initialisierung ungleich Null.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383188</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 11 Oct 2007 19:40:09 GMT</pubDate></item></channel></rss>