<?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[Probleme beim erzeugen eines Dynamischen Arrays]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>in meinem Programm erzeuge ich zur Laufzeit ein Dynamisches Array.</p>
<p>In der Klasse ist es als Private deklariert:</p>
<pre><code class="language-cpp">POINT* m_PointUeLuefter;
</code></pre>
<p>In einer Funktion der Klasse soll die Größe festgelegt werden.</p>
<pre><code class="language-cpp">m_PointUeLuefter=new POINT[56];
</code></pre>
<p>Beim Kompilieren kommt keine Fehlermeldung, aber beim Debbugen kommt folgende Meldung in einer Messagebox:<br />
&quot;First-change exception in Touch_Ausleger.exe: 0x80000002: Datatype Misalignment.&quot;</p>
<p>Beim bestätigen mit OK springt der Debugger in folgenden Assembler Code (nur ein Ausschnitt):</p>
<pre><code class="language-asm">03F9241C   ldr       r10, [sp]
03F92420   mov       r8, #0
03F92424   ldr       r3, [r7]
03F92428   mov       r6, #0
03F9242C   cmp       r3, #0
03F92430   addeq     r3, r5, #0x37
03F92434   biceq     r3, r3, #0xF
03F92438   subeq     r7, r3, #8
03F9243C   add       r3, r5, #0x37
03F92440   bic       r11, r3, #0xF
03F92444   mov       lr, r7
03F92448   ldr       r3, [lr]
03F9244C   b         03F92454
03F92450   ldr       r3, [lr, +r3]!
03F92454   cmp       r3, #0
03F92458   bgt       03F92450
03F9245C   mov       r1, lr
03F92460   mov       r0, r5
03F92464   mov       r4, lr
03F92468   bl        03F92170
03F9246C   ldr       r3, [r4]
03F92470   mov       lr, r0
03F92474   rsb       r2, r3, #0
03F92478   cmp       r2, r9
03F9247C   bge       03F92524
</code></pre>
<p>der Fehler liegt wohl in Zeile</p>
<pre><code class="language-asm">03F92450   ldr       r3, [lr, +r3]!
</code></pre>
<p>da hier der Debbuger stehen bleibt.</p>
<p>Wie kann ich das Problem umgehen? Kann es sein das die Adresse 0x80000002 für die Registry reserviert ist?</p>
<p>Gruß<br />
spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153520/probleme-beim-erzeugen-eines-dynamischen-arrays</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 14:06:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153520.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Jul 2006 07:30:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme beim erzeugen eines Dynamischen Arrays on Tue, 18 Jul 2006 07:30:50 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>in meinem Programm erzeuge ich zur Laufzeit ein Dynamisches Array.</p>
<p>In der Klasse ist es als Private deklariert:</p>
<pre><code class="language-cpp">POINT* m_PointUeLuefter;
</code></pre>
<p>In einer Funktion der Klasse soll die Größe festgelegt werden.</p>
<pre><code class="language-cpp">m_PointUeLuefter=new POINT[56];
</code></pre>
<p>Beim Kompilieren kommt keine Fehlermeldung, aber beim Debbugen kommt folgende Meldung in einer Messagebox:<br />
&quot;First-change exception in Touch_Ausleger.exe: 0x80000002: Datatype Misalignment.&quot;</p>
<p>Beim bestätigen mit OK springt der Debugger in folgenden Assembler Code (nur ein Ausschnitt):</p>
<pre><code class="language-asm">03F9241C   ldr       r10, [sp]
03F92420   mov       r8, #0
03F92424   ldr       r3, [r7]
03F92428   mov       r6, #0
03F9242C   cmp       r3, #0
03F92430   addeq     r3, r5, #0x37
03F92434   biceq     r3, r3, #0xF
03F92438   subeq     r7, r3, #8
03F9243C   add       r3, r5, #0x37
03F92440   bic       r11, r3, #0xF
03F92444   mov       lr, r7
03F92448   ldr       r3, [lr]
03F9244C   b         03F92454
03F92450   ldr       r3, [lr, +r3]!
03F92454   cmp       r3, #0
03F92458   bgt       03F92450
03F9245C   mov       r1, lr
03F92460   mov       r0, r5
03F92464   mov       r4, lr
03F92468   bl        03F92170
03F9246C   ldr       r3, [r4]
03F92470   mov       lr, r0
03F92474   rsb       r2, r3, #0
03F92478   cmp       r2, r9
03F9247C   bge       03F92524
</code></pre>
<p>der Fehler liegt wohl in Zeile</p>
<pre><code class="language-asm">03F92450   ldr       r3, [lr, +r3]!
</code></pre>
<p>da hier der Debbuger stehen bleibt.</p>
<p>Wie kann ich das Problem umgehen? Kann es sein das die Adresse 0x80000002 für die Registry reserviert ist?</p>
<p>Gruß<br />
spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099548</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Tue, 18 Jul 2006 07:30:50 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim erzeugen eines Dynamischen Arrays on Tue, 18 Jul 2006 08:00:33 GMT]]></title><description><![CDATA[<p>spacehelix schrieb:</p>
<blockquote>
<p>Wie kann ich das Problem umgehen? Kann es sein das die Adresse 0x80000002 für die Registry reserviert ist?</p>
</blockquote>
<p>Ich denke nicht ...</p>
<p>Zeig mal ein bisschen mehr von deinem Code. Also die Stellen, in denen du mit dem Array hantierst. Denn auf den ersten Blick sieht das alles schlüssig aus, also liegt der Fehler woanders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099573</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Tue, 18 Jul 2006 08:00:33 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim erzeugen eines Dynamischen Arrays on Tue, 18 Jul 2006 08:56:47 GMT]]></title><description><![CDATA[<p>spacehelix schrieb:</p>
<blockquote>
<p>Beim Kompilieren kommt keine Fehlermeldung</p>
</blockquote>
<p>und die wäre vielleicht auch sinnvoll?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099609</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Tue, 18 Jul 2006 08:56:47 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim erzeugen eines Dynamischen Arrays on Tue, 18 Jul 2006 09:00:33 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>die Header sieht folgendermassen aus.</p>
<pre><code>class CUEBERSICHTLUFT
{
// Memberfunctions
public:
	CUEBERSICHTLUFT( );
	~CUEBERSICHTLUFT( );
	void Init();
	void DrawUebersicht();
private:
	void Init900_8();
	POINT* m_PointUeLuefter;
protected:
};
</code></pre>
<p>die Funktion sieht so aus:</p>
<pre><code class="language-cpp">void CUEBERSICHTLUFT::Init900_8()
{
	m_Uebersicht.luefterBackgroundWidth=38;	
	m_Uebersicht.luefterBackgroundHeight=48;
	m_Uebersicht.luefterBarHeight=40;
	m_Uebersicht.luefterBarWidth=5;
	m_Uebersicht.luefterBarLeft=4;
	m_Uebersicht.luefterBarTop=4;
	m_hBitmapLuefter=LoadBitmap(g_hInstance,MAKEINTRESOURCE(IDB_UE_L));
	m_hBitmapBS=LoadBitmap(g_hInstance,MAKEINTRESOURCE(IDB_UE_BS));

	m_PointUeLuefter=new POINT[56]; //Datatyp fehler wenn dies so gemacht wird. Warum?? 
	//left												top							
	m_PointUeLuefter[0].x=300;						m_PointUeLuefter[0].y=10;
	m_PointUeLuefter[1].x=343;						m_PointUeLuefter[1].y=m_PointUeLuefter[0].y;		
	m_PointUeLuefter[2].x=386;						m_PointUeLuefter[2].y=m_PointUeLuefter[0].y;	
	m_PointUeLuefter[3].x=429;						m_PointUeLuefter[3].y=m_PointUeLuefter[0].y;	
	m_PointUeLuefter[4].x=472;						m_PointUeLuefter[4].y=m_PointUeLuefter[0].y;		
	m_PointUeLuefter[5].x=515;						m_PointUeLuefter[5].y=m_PointUeLuefter[0].y;	
	m_PointUeLuefter[6].x=558;						m_PointUeLuefter[6].y=m_PointUeLuefter[0].y;		
	m_PointUeLuefter[7].x=601;						m_PointUeLuefter[7].y=m_PointUeLuefter[0].y;	
	m_PointUeLuefter[8].x=m_PointUeLuefter[0].x;	m_PointUeLuefter[8].y=63;		
	m_PointUeLuefter[9].x=m_PointUeLuefter[1].x;	m_PointUeLuefter[9].y=m_PointUeLuefter[8].y;		
	m_PointUeLuefter[10].x=m_PointUeLuefter[2].x;	m_PointUeLuefter[10].y=m_PointUeLuefter[8].y;	
	m_PointUeLuefter[11].x=m_PointUeLuefter[3].x;	m_PointUeLuefter[11].y=m_PointUeLuefter[8].y;		
	m_PointUeLuefter[12].x=m_PointUeLuefter[4].x;	m_PointUeLuefter[12].y=m_PointUeLuefter[8].y;	
	m_PointUeLuefter[13].x=m_PointUeLuefter[5].x;	m_PointUeLuefter[13].y=m_PointUeLuefter[8].y;		
	m_PointUeLuefter[14].x=m_PointUeLuefter[6].x;	m_PointUeLuefter[14].y=m_PointUeLuefter[8].y;		
	m_PointUeLuefter[15].x=m_PointUeLuefter[7].x;	m_PointUeLuefter[15].y=m_PointUeLuefter[8].y;			
	m_PointUeLuefter[16].x=m_PointUeLuefter[0].x;	m_PointUeLuefter[16].y=116;	
	m_PointUeLuefter[17].x=m_PointUeLuefter[1].x;	m_PointUeLuefter[17].y=m_PointUeLuefter[16].y;
	m_PointUeLuefter[18].x=m_PointUeLuefter[2].x;	m_PointUeLuefter[18].y=m_PointUeLuefter[16].y;	
	m_PointUeLuefter[19].x=m_PointUeLuefter[3].x;	m_PointUeLuefter[19].y=m_PointUeLuefter[16].y;	
	m_PointUeLuefter[20].x=m_PointUeLuefter[4].x;	m_PointUeLuefter[20].y=m_PointUeLuefter[16].y;	
	m_PointUeLuefter[21].x=m_PointUeLuefter[5].x;	m_PointUeLuefter[21].y=m_PointUeLuefter[16].y;	
	m_PointUeLuefter[22].x=m_PointUeLuefter[6].x;	m_PointUeLuefter[22].y=m_PointUeLuefter[16].y;	
	m_PointUeLuefter[23].x=m_PointUeLuefter[7].x;	m_PointUeLuefter[23].y=m_PointUeLuefter[16].y;
	m_PointUeLuefter[24].x=m_PointUeLuefter[0].x;	m_PointUeLuefter[24].y=169;
	m_PointUeLuefter[25].x=m_PointUeLuefter[1].x;	m_PointUeLuefter[25].y=m_PointUeLuefter[24].y;	
	m_PointUeLuefter[26].x=m_PointUeLuefter[2].x;	m_PointUeLuefter[26].y=m_PointUeLuefter[24].y;
	m_PointUeLuefter[27].x=m_PointUeLuefter[3].x;	m_PointUeLuefter[27].y=m_PointUeLuefter[24].y;	
	m_PointUeLuefter[28].x=m_PointUeLuefter[4].x;	m_PointUeLuefter[28].y=m_PointUeLuefter[24].y;
	m_PointUeLuefter[29].x=m_PointUeLuefter[5].x;	m_PointUeLuefter[29].y=m_PointUeLuefter[24].y;	
	m_PointUeLuefter[30].x=m_PointUeLuefter[6].x;	m_PointUeLuefter[30].y=m_PointUeLuefter[24].y;	
	m_PointUeLuefter[31].x=m_PointUeLuefter[7].x;	m_PointUeLuefter[31].y=m_PointUeLuefter[24].y;	
	m_PointUeLuefter[32].x=m_PointUeLuefter[0].x;	m_PointUeLuefter[32].y=222;	
	m_PointUeLuefter[33].x=m_PointUeLuefter[1].x;	m_PointUeLuefter[33].y=m_PointUeLuefter[32].y;
	m_PointUeLuefter[34].x=m_PointUeLuefter[2].x;	m_PointUeLuefter[34].y=m_PointUeLuefter[32].y;
	m_PointUeLuefter[35].x=m_PointUeLuefter[3].x;	m_PointUeLuefter[35].y=m_PointUeLuefter[32].y;	
	m_PointUeLuefter[36].x=m_PointUeLuefter[4].x;	m_PointUeLuefter[36].y=m_PointUeLuefter[32].y;	
	m_PointUeLuefter[37].x=m_PointUeLuefter[5].x;	m_PointUeLuefter[37].y=m_PointUeLuefter[32].y;
	m_PointUeLuefter[38].x=m_PointUeLuefter[6].x;	m_PointUeLuefter[38].y=m_PointUeLuefter[32].y;	
	m_PointUeLuefter[39].x=m_PointUeLuefter[7].x;	m_PointUeLuefter[39].y=m_PointUeLuefter[32].y;
	m_PointUeLuefter[40].x=m_PointUeLuefter[0].x;	m_PointUeLuefter[40].y=275;
	m_PointUeLuefter[41].x=m_PointUeLuefter[1].x;	m_PointUeLuefter[41].y=m_PointUeLuefter[40].y;
	m_PointUeLuefter[42].x=m_PointUeLuefter[2].x;	m_PointUeLuefter[42].y=m_PointUeLuefter[40].y;
	m_PointUeLuefter[43].x=m_PointUeLuefter[3].x;	m_PointUeLuefter[43].y=m_PointUeLuefter[40].y;	
	m_PointUeLuefter[44].x=m_PointUeLuefter[4].x;	m_PointUeLuefter[44].y=m_PointUeLuefter[40].y;	
	m_PointUeLuefter[45].x=m_PointUeLuefter[5].x;	m_PointUeLuefter[45].y=m_PointUeLuefter[40].y;
	m_PointUeLuefter[46].x=m_PointUeLuefter[6].x;	m_PointUeLuefter[46].y=m_PointUeLuefter[40].y;
	m_PointUeLuefter[47].x=m_PointUeLuefter[7].x;	m_PointUeLuefter[47].y=m_PointUeLuefter[40].y;
	m_PointUeLuefter[48].x=m_PointUeLuefter[0].x;	m_PointUeLuefter[48].y=328;
	m_PointUeLuefter[49].x=m_PointUeLuefter[1].x;	m_PointUeLuefter[49].y=m_PointUeLuefter[48].y;
	m_PointUeLuefter[50].x=m_PointUeLuefter[2].x;	m_PointUeLuefter[50].y=m_PointUeLuefter[48].y;	
	m_PointUeLuefter[51].x=m_PointUeLuefter[3].x;	m_PointUeLuefter[51].y=m_PointUeLuefter[48].y;	
	m_PointUeLuefter[52].x=m_PointUeLuefter[4].x;	m_PointUeLuefter[52].y=m_PointUeLuefter[48].y;	
	m_PointUeLuefter[53].x=m_PointUeLuefter[5].x;	m_PointUeLuefter[53].y=m_PointUeLuefter[48].y;	
	m_PointUeLuefter[54].x=m_PointUeLuefter[6].x;	m_PointUeLuefter[54].y=m_PointUeLuefter[48].y;	
	m_PointUeLuefter[55].x=m_PointUeLuefter[7].x;	m_PointUeLuefter[55].y=m_PointUeLuefter[48].y;	

}
</code></pre>
<p>Der Fehler passiert nur wenn ich das Array Dynamisch erzeuge und auch genau an der Position. Erzeuge ich das Arrya statisch (POINT m_PointUeLuefter[56]; ) dann funktionierts.</p>
<p>Gruß spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099613</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:00:33 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim erzeugen eines Dynamischen Arrays on Tue, 18 Jul 2006 09:11:02 GMT]]></title><description><![CDATA[<p>Poste doch bitte mal die Kompilermeldung, denn eigentlich sieht es halbwegs in ordnung aus was das dynamische erzeugen angeht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099616</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:11:02 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim erzeugen eines Dynamischen Arrays on Tue, 18 Jul 2006 09:18:01 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>was für eine Meldung meinst du?</p>
<p>beim Kompilieren erscheint keine Fehlermeldung. Nur beim Ausführen.</p>
<p>Ich programmiere dies für ein Windows CE Sytem. In der Entwicklungsumgebung (eVC++) ist ein Windows CE emulator auf dem läufts. Nur wenn ich es auf der Hardware Debuggen möchte kommt die im ersten Posting angegebene Fehlermeldung.</p>
<p>An anderen Stellen im Programm erzeuge ich auch Dynamische Arrays, dort funktioniert es.</p>
<p>Gruß<br />
spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099623</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Tue, 18 Jul 2006 09:18:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim erzeugen eines Dynamischen Arrays on Tue, 18 Jul 2006 10:26:32 GMT]]></title><description><![CDATA[<p>Ui, wie war das noch gleich?<br />
Erst Google und dann Forum ... stimmts!?</p>
<p>Gleich der erste Link:<br />
<a href="http://support.microsoft.com/?scid=kb%3Ben-us%3B909973&amp;x=9&amp;y=22" rel="nofollow">http://support.microsoft.com/?scid=kb%3Ben-us%3B909973&amp;x=9&amp;y=22</a></p>
<p>Und dass du für CE programmierst hättest du uns auch gleich am Anfang mitteilen können <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/1099668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099668</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Tue, 18 Jul 2006 10:26:32 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim erzeugen eines Dynamischen Arrays on Tue, 18 Jul 2006 10:53:36 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>danke für den Link hat geholfen jetzt funktioniert es.</p>
<p>Das ich für Windows CE Programmiere schreibe ich nicht sofort, da ich feststellen musste, dass die meisten davon abgeschreckt werden und dann Fragen nicht beantworten, weil sie denken das die Windows CE Welt anders aussieht. Ist aber in nur ganz wenigen fällen so.</p>
<p>Gruß<br />
spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099696</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Tue, 18 Jul 2006 10:53:36 GMT</pubDate></item></channel></rss>