<?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 wird kein Wert zugewiesen:]]></title><description><![CDATA[<p>Hallo. Ich bin gerade total baff, was mein Debugger mir hier anzeigt. Ich arbeite mit SDL und möchte mir den Tastencode einer Maustaste zwischenspeichern. Allerdings wird anscheinden gar nichts gespeichert. Is mir alles schleierhaft, deshlab poste ich hier mal code und hoffe ihr könnt mir sagen was hier schief läuft.</p>
<p>Erstmal die SDL_Eventstruktur welche ich auslese:</p>
<pre><code class="language-cpp">/* Mouse button event structure */
typedef struct SDL_MouseButtonEvent {
	Uint8 type;	/* SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP */
	Uint8 which;	/* The mouse device index */
	Uint8 button;	/* The mouse button index */
	Uint8 state;	/* SDL_PRESSED or SDL_RELEASED */
	Uint16 x, y;	/* The X/Y coordinates of the mouse at press time */
} SDL_MouseButtonEvent;
</code></pre>
<p>Dann meine Klasse:</p>
<pre><code class="language-cpp">class Kamera
{ 
	private: 
		Uint8 pressedBtn;
		[...]
	public:
		//----Konstruktor/Destruktor----
		Kamera();
		~Kamera();

		[...]

		//----Ereigniss handler----
		void onMouseDown(SDL_MouseButtonEvent* mbe);
		void onMouseUp(SDL_MouseButtonEvent* mbe);
		void onMouseMove(SDL_MouseMotionEvent* mme);
};
</code></pre>
<p>Hier der Inhalt von 'onMouseDown()':</p>
<pre><code class="language-cpp">void Kamera::onMouseDown(SDL_MouseButtonEvent* mbe)
{
	pressedBtn = mbe-&gt;button;
	switch (pressedBtn)
	{
		case SDL_BUTTON_LEFT:
			oldX = mbe-&gt;x;
			oldY = mbe-&gt;y;
			break;
		case SDL_BUTTON_MIDDLE:
			oldY = mbe-&gt;y;
			break;
	};
};
</code></pre>
<p>Und so rufe ich onMouseDown() auf:</p>
<pre><code class="language-cpp">while ( SDL_PollEvent( &amp;event ) )
		{
		    switch( event.type )
			{
			case SDL_MOUSEBUTTONDOWN:
				/* handle mousedown event */
				kamera-&gt;onMouseDown( &amp;(event.button) );
				break;
              [...]
</code></pre>
<p>Folgendes passiert nun in onMouseDown():</p>
<p>mbe-&gt;button enthält folgenden Wert (Laut Debugger): 1 '\001'<br />
pressedBtn enthält nach(!) der Zuweisung den Inhalt: 0 '\0'</p>
<p>Witzigerweise wird aber innerhalb des Switch in die richtige Case anweisung verzweigt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Eigentlich will ich doch nur, dass nach meiner Zuweisung der inhalt auch in pressedBtn gespeichert wird.</p>
<p>Wisst ihr warum das nicht geht, und was ich anders machen muss, damit es geht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/133971/variable-wird-kein-wert-zugewiesen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 11:37:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133971.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Jan 2006 18:13:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variable wird kein Wert zugewiesen: on Sun, 22 Jan 2006 18:13:36 GMT]]></title><description><![CDATA[<p>Hallo. Ich bin gerade total baff, was mein Debugger mir hier anzeigt. Ich arbeite mit SDL und möchte mir den Tastencode einer Maustaste zwischenspeichern. Allerdings wird anscheinden gar nichts gespeichert. Is mir alles schleierhaft, deshlab poste ich hier mal code und hoffe ihr könnt mir sagen was hier schief läuft.</p>
<p>Erstmal die SDL_Eventstruktur welche ich auslese:</p>
<pre><code class="language-cpp">/* Mouse button event structure */
typedef struct SDL_MouseButtonEvent {
	Uint8 type;	/* SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP */
	Uint8 which;	/* The mouse device index */
	Uint8 button;	/* The mouse button index */
	Uint8 state;	/* SDL_PRESSED or SDL_RELEASED */
	Uint16 x, y;	/* The X/Y coordinates of the mouse at press time */
} SDL_MouseButtonEvent;
</code></pre>
<p>Dann meine Klasse:</p>
<pre><code class="language-cpp">class Kamera
{ 
	private: 
		Uint8 pressedBtn;
		[...]
	public:
		//----Konstruktor/Destruktor----
		Kamera();
		~Kamera();

		[...]

		//----Ereigniss handler----
		void onMouseDown(SDL_MouseButtonEvent* mbe);
		void onMouseUp(SDL_MouseButtonEvent* mbe);
		void onMouseMove(SDL_MouseMotionEvent* mme);
};
</code></pre>
<p>Hier der Inhalt von 'onMouseDown()':</p>
<pre><code class="language-cpp">void Kamera::onMouseDown(SDL_MouseButtonEvent* mbe)
{
	pressedBtn = mbe-&gt;button;
	switch (pressedBtn)
	{
		case SDL_BUTTON_LEFT:
			oldX = mbe-&gt;x;
			oldY = mbe-&gt;y;
			break;
		case SDL_BUTTON_MIDDLE:
			oldY = mbe-&gt;y;
			break;
	};
};
</code></pre>
<p>Und so rufe ich onMouseDown() auf:</p>
<pre><code class="language-cpp">while ( SDL_PollEvent( &amp;event ) )
		{
		    switch( event.type )
			{
			case SDL_MOUSEBUTTONDOWN:
				/* handle mousedown event */
				kamera-&gt;onMouseDown( &amp;(event.button) );
				break;
              [...]
</code></pre>
<p>Folgendes passiert nun in onMouseDown():</p>
<p>mbe-&gt;button enthält folgenden Wert (Laut Debugger): 1 '\001'<br />
pressedBtn enthält nach(!) der Zuweisung den Inhalt: 0 '\0'</p>
<p>Witzigerweise wird aber innerhalb des Switch in die richtige Case anweisung verzweigt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Eigentlich will ich doch nur, dass nach meiner Zuweisung der inhalt auch in pressedBtn gespeichert wird.</p>
<p>Wisst ihr warum das nicht geht, und was ich anders machen muss, damit es geht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/973068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/973068</guid><dc:creator><![CDATA[Anfänger06]]></dc:creator><pubDate>Sun, 22 Jan 2006 18:13:36 GMT</pubDate></item><item><title><![CDATA[Reply to Variable wird kein Wert zugewiesen: on Sun, 22 Jan 2006 22:39:13 GMT]]></title><description><![CDATA[<p>Habt ihr wirklich keine Idee?</p>
<p>Ich komm auch net weiter. Die Debugger ausgaben allein sind mysteriös. Eigentlich sollten da ja Zahlen drinnen stehen. Ich hba keine Ahnung wie dieser \ da reinkommt... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/973513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/973513</guid><dc:creator><![CDATA[Anfänger06]]></dc:creator><pubDate>Sun, 22 Jan 2006 22:39:13 GMT</pubDate></item><item><title><![CDATA[Reply to Variable wird kein Wert zugewiesen: on Sun, 22 Jan 2006 23:29:13 GMT]]></title><description><![CDATA[<p>Ich find schon dein ganzes Callback System sehr ominös. Daran würde ich nicht weiter programmieren wollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/973535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/973535</guid><dc:creator><![CDATA[Kodiak]]></dc:creator><pubDate>Sun, 22 Jan 2006 23:29:13 GMT</pubDate></item><item><title><![CDATA[Reply to Variable wird kein Wert zugewiesen: on Sun, 22 Jan 2006 23:36:47 GMT]]></title><description><![CDATA[<p>Dir zuliebe hab ich mir es jetzt mal genauer angesehen: SDL_Event ist eine Union, d.h. wenn der type da drin gesetzt ist, ist event.button logischerweise 0x00. Probier doch mal statt &quot;event.button&quot; &quot;event.type&quot; zu übergeben. Musst evtl. die Paramter deiner Funktionen anpassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/973537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/973537</guid><dc:creator><![CDATA[Kodiak]]></dc:creator><pubDate>Sun, 22 Jan 2006 23:36:47 GMT</pubDate></item><item><title><![CDATA[Reply to Variable wird kein Wert zugewiesen: on Mon, 23 Jan 2006 10:20:14 GMT]]></title><description><![CDATA[<p>Deine Parameter-Übergabe sieht merkwürdig aus:</p>
<pre><code class="language-cpp">void Kamera::onMouseDown(SDL_MouseButtonEvent* mbe);//erwartet einen Pointer auf deinen Event-Struct

while ( SDL_PollEvent( &amp;event ) )
  ...
  kamera-&gt;onMouseDown( &amp;(event.button) );//Was für einen Typ hat denn event? Du pointerst hier mitten in eine struct hinein
  ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/973682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/973682</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Mon, 23 Jan 2006 10:20:14 GMT</pubDate></item><item><title><![CDATA[Reply to Variable wird kein Wert zugewiesen: on Tue, 24 Jan 2006 20:28:18 GMT]]></title><description><![CDATA[<blockquote>
<p>Dir zuliebe hab ich mir es jetzt mal genauer angesehen</p>
</blockquote>
<p>Ich weiß das zu schätzen. <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>
<p>Ich hab die Pointer jetzt weg gelassen und übergeb das struct direkt.<br />
Jetzt wird zwar in pressedBtn etwas gespeichert (und das ist gut so <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="😉"
    /> ) allerdings sieht das immer noch komisch aus. Ne normale Integerzahl sollte irgendwie &quot;zahliger&quot; aussehen, nich mit so &quot;\&quot; Dingern...</p>
<p>(Nebenbei: in Type steh auch nur sowas drinnen, wenn auch 5 '\005' .)</p>
<p>Jetzt muss ich nur noch rausfinden, wieso die Kamera sich nicht bewegen lässt. Aber das ist eine andere Sache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975343</guid><dc:creator><![CDATA[Anfänger06]]></dc:creator><pubDate>Tue, 24 Jan 2006 20:28:18 GMT</pubDate></item><item><title><![CDATA[Reply to Variable wird kein Wert zugewiesen: on Wed, 25 Jan 2006 10:07:41 GMT]]></title><description><![CDATA[<p>Anfänger06 schrieb:</p>
<blockquote>
<p>Ne normale Integerzahl sollte irgendwie &quot;zahliger&quot; aussehen, nich mit so &quot;\&quot; Dingern...</p>
</blockquote>
<p>Such dir mal den typedef von Uint8 <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="😉"
    /> (dürfte ein 'unsigned char' sein)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975700</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Wed, 25 Jan 2006 10:07:41 GMT</pubDate></item></channel></rss>