<?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[Variable ändert Ihren Wert]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Schleife geschrieben, mit der ich 2 IOBoards initialisiere.<br />
m_MaxIOBoard wird zunächst auf 2 gesetzt - nach Abschluss der Initialisierung ist der Wert allerdings i.d.R. auf 0 verändert, ohne dass die Variable in der Zwischenzeit irgendwo angerührt wird.</p>
<p>Der Aufruf erfolgt hier:</p>
<pre><code class="language-cpp">m_MaxIOBoard = 2;

int j;
for(j=0;j&lt;m_MaxIOBoard;j++)
{
	iReturncode = m_IOboard[j].Init(j);
};
</code></pre>
<p>Im Objekt m_IOboard sieht die Init Routine wiefolgt aus:</p>
<pre><code class="language-cpp">int CIOBoard::Init(int BoardNr)
{
/** Initialisierungscode für Hardware entfernt,
der Fehlerlos abgeschlossen wird **/

/* Jedes IOBoard hat 8 LEDs die wiederum als Objekte angelegt
sind, diese werden ebenfalls Initialisiert */

	int i;	
	for (i=0;i&lt;8;i++)
	{
		m_Led[i+(8*BoardNr)].m_BoardNr=m_BoardNr;
		m_Led[i+(8*BoardNr)].m_PortNr=i;
		m_Led[i+(8*BoardNr)].SetStatus(false);
	}
	return 0;
}
</code></pre>
<p>Kann mir jemand erklären, was VC++ 6 da macht?</p>
<p>Danke + Grüße<br />
Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145270/variable-ändert-ihren-wert</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 00:10:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145270.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Apr 2006 12:27:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variable ändert Ihren Wert on Wed, 26 Apr 2006 12:27:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Schleife geschrieben, mit der ich 2 IOBoards initialisiere.<br />
m_MaxIOBoard wird zunächst auf 2 gesetzt - nach Abschluss der Initialisierung ist der Wert allerdings i.d.R. auf 0 verändert, ohne dass die Variable in der Zwischenzeit irgendwo angerührt wird.</p>
<p>Der Aufruf erfolgt hier:</p>
<pre><code class="language-cpp">m_MaxIOBoard = 2;

int j;
for(j=0;j&lt;m_MaxIOBoard;j++)
{
	iReturncode = m_IOboard[j].Init(j);
};
</code></pre>
<p>Im Objekt m_IOboard sieht die Init Routine wiefolgt aus:</p>
<pre><code class="language-cpp">int CIOBoard::Init(int BoardNr)
{
/** Initialisierungscode für Hardware entfernt,
der Fehlerlos abgeschlossen wird **/

/* Jedes IOBoard hat 8 LEDs die wiederum als Objekte angelegt
sind, diese werden ebenfalls Initialisiert */

	int i;	
	for (i=0;i&lt;8;i++)
	{
		m_Led[i+(8*BoardNr)].m_BoardNr=m_BoardNr;
		m_Led[i+(8*BoardNr)].m_PortNr=i;
		m_Led[i+(8*BoardNr)].SetStatus(false);
	}
	return 0;
}
</code></pre>
<p>Kann mir jemand erklären, was VC++ 6 da macht?</p>
<p>Danke + Grüße<br />
Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045646</guid><dc:creator><![CDATA[floms]]></dc:creator><pubDate>Wed, 26 Apr 2006 12:27:22 GMT</pubDate></item><item><title><![CDATA[Reply to Variable ändert Ihren Wert on Wed, 26 Apr 2006 12:32:56 GMT]]></title><description><![CDATA[<p>Bist du sicher, daß du mit dem richtigen Objekt arbeitest? Von wo aus rufst du denn den oberen Code auf?</p>
<p>(und wie ist m_IOboard definiert? CIOBoard*? CIOBoard[] (welche Größe)? vector&lt;&gt;? ...? Ist die Variable ordentlich initialisiert worden?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045653</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 26 Apr 2006 12:32:56 GMT</pubDate></item><item><title><![CDATA[Reply to Variable ändert Ihren Wert on Wed, 26 Apr 2006 12:36:50 GMT]]></title><description><![CDATA[<p>Ich kann mich CStool nur anschließen.<br />
Nimm einmal an, Deine Variable m_MaxIOBoard liegt hinter dem array m_Led in der Klasse. Der ist aber zu klein definiert. Dann würde der Aufruf von Init Speicherbereich hinter m_Led überschreiben und z.B. auch Deine Variable m_maxIOBoard verändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045660</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 26 Apr 2006 12:36:50 GMT</pubDate></item></channel></rss>