<?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[Threads unter Windows und Werte übergeben]]></title><description><![CDATA[<p>Hallo,<br />
ich habe (unter windows in C) ein Programm gecodet, das mit mehreren threads arbeitet.<br />
dafür verwende ich die funktion _beginthreads</p>
<pre><code class="language-cpp">_beginthreads (FUNKTIONSNAME, 0, NULL);
</code></pre>
<p>so starte ich die threads normal immer<br />
bei diesem programm muss ich der funktion, die als thread gestartet wird allerdings mehrere parameter übergeben, irgendwie geht das aber nicht wenn ich das einfach hinter NULL mit beistrichen anhänge...<br />
weiß da jemand rat?<br />
danke<br />
lg papanoah</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143584/threads-unter-windows-und-werte-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 03:00:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143584.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Apr 2006 21:04:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Threads unter Windows und Werte übergeben on Sun, 09 Apr 2006 21:04:56 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe (unter windows in C) ein Programm gecodet, das mit mehreren threads arbeitet.<br />
dafür verwende ich die funktion _beginthreads</p>
<pre><code class="language-cpp">_beginthreads (FUNKTIONSNAME, 0, NULL);
</code></pre>
<p>so starte ich die threads normal immer<br />
bei diesem programm muss ich der funktion, die als thread gestartet wird allerdings mehrere parameter übergeben, irgendwie geht das aber nicht wenn ich das einfach hinter NULL mit beistrichen anhänge...<br />
weiß da jemand rat?<br />
danke<br />
lg papanoah</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034152</guid><dc:creator><![CDATA[Papa_Noah]]></dc:creator><pubDate>Sun, 09 Apr 2006 21:04:56 GMT</pubDate></item><item><title><![CDATA[Reply to Threads unter Windows und Werte übergeben on Sun, 09 Apr 2006 21:12:30 GMT]]></title><description><![CDATA[<p><a href="http://msdn2.microsoft.com/en-us/library/kdzttdcb(VS.80).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/kdzttdcb(VS.80).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034157</guid><dc:creator><![CDATA[msdn]]></dc:creator><pubDate>Sun, 09 Apr 2006 21:12:30 GMT</pubDate></item><item><title><![CDATA[Reply to Threads unter Windows und Werte übergeben on Sun, 09 Apr 2006 22:53:35 GMT]]></title><description><![CDATA[<p>msdn schrieb:</p>
<blockquote>
<p><a href="http://msdn2.microsoft.com/en-us/library/kdzttdcb(VS.80).aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/kdzttdcb(VS.80).aspx</a></p>
</blockquote>
<p>habs mir mal angeguckt, und das gemacht:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

void ausgabe (int *a, int *b, int *c)
{
printf (&quot;1: %i\n&quot;
        &quot;2: %i\n&quot;
        &quot;3: %i\n&quot;,a,b,c);

}

int main(int argc, char *argv[])
{
int test1=1;
int test2=2;
int test3=3;

_beginthread(ausgabe, 0, (int*)test1, (int*)test2, (int*)test3);

  system(&quot;PAUSE&quot;);	
  return 0;
}
</code></pre>
<p>allerdings habe ich wieder das selbe problem: test1 wird richtig übergeben, bei test2 und test3 funktioniert es allerdings nicht... :S<br />
lg papanoah</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034191</guid><dc:creator><![CDATA[Papa_Noah1]]></dc:creator><pubDate>Sun, 09 Apr 2006 22:53:35 GMT</pubDate></item><item><title><![CDATA[Reply to Threads unter Windows und Werte übergeben on Sun, 09 Apr 2006 23:17:15 GMT]]></title><description><![CDATA[<p>mir ist es nun mit diesem code gelungen, dass 3 zahlen richtig übergeben werden, aber ich wüsste net wie es geht wenn ich zahlen und buchstaben (int und char) übergeben muss...</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

void ausgabe (int *a)
{
int *hilfe;
int d;

//inhalt von a(adresse von test1) in hilfe speichern
hilfe=*a;

//Inhalt der variable auf die die adrese in hilfe zeigt, mit *hilfe ausgeben
printf (&quot;test1 in Funktion = %i\n&quot;,*hilfe);
a++;

hilfe=*a;

printf (&quot;test2 in Funktion = %i\n&quot;,*hilfe);
a++;

hilfe=*a;
printf (&quot;test3 in Funktion = %i\n&quot;,*hilfe);
}

int main(int argc, char *argv[])
{
int test1=1;
int test2=2;
int test3=3;
int *args[3];

printf (&quot;Adresse test1 = %i \tWert = %i\n&quot;, &amp;test1, test1);
printf (&quot;Adresse test2 = %i \tWert = %i\n&quot;, &amp;test2, test2);
printf (&quot;Adresse test3 = %i \tWert = %i\n\n&quot;, &amp;test3, test3);

//Adresse holen
args[0] = &amp;test1;
args[1] = &amp;test2;
args[2] = &amp;test3;

//thread starten und adresse von args[0] übergeben
_beginthread(ausgabe, 0, args);

  system(&quot;PAUSE&quot;);	
  return 0;
}
</code></pre>
<p>bitte um hilfe <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="🙂"
    /><br />
lg papanoah</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034197</guid><dc:creator><![CDATA[Papa_Noah]]></dc:creator><pubDate>Sun, 09 Apr 2006 23:17:15 GMT</pubDate></item><item><title><![CDATA[Reply to Threads unter Windows und Werte übergeben on Mon, 10 Apr 2006 08:00:37 GMT]]></title><description><![CDATA[<p>Du hast schon gut erkannt dass Du eine beliebige Adresse übergeben darfst. Also auch z.B. die einer Struktur:</p>
<pre><code class="language-cpp">struct daten {
  int hilfe;
  const char *text;
  struct riiesenteil *einiges;
};
void ausgabe(struct daten* a)
{
  printf(&quot;die zahl: %d\n&quot;, a-&gt;hilfe);
  printf(&quot;der text: %s\n&quot;, a-&gt;text);
  printf(&quot;der rest: &quot;);
  riiesenteil_ausgeben(a-&gt;einiges);
}
int main(void)
{
  struct daten d;
  d.hilfe = 12;
  d.text = &quot;Hallo, Welt&quot;;
  d.einiges = malloc(sizeof(struct riiesenteil));
  _beginthread(ausgabe, 0, &amp;d);

  return 0;
}
</code></pre>
<p>Wobei natürlich drauf zu achten wäre, dass der Zeiger d in ausgabe auf eine lokale Variable der Funktion main zeigt (was dann problematisch wird wenn die Daten innerhalb main weiter benutzt würden, oder wenn die Funktion zurückspringt, weil es eben nicht main ist sondern eine Unterfunktion).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034281</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 10 Apr 2006 08:00:37 GMT</pubDate></item><item><title><![CDATA[Reply to Threads unter Windows und Werte übergeben on Mon, 10 Apr 2006 16:14:07 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=13512" rel="nofollow">c.rackwitz</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=10" rel="nofollow">ANSI C</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034658</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 10 Apr 2006 16:14:07 GMT</pubDate></item><item><title><![CDATA[Reply to Threads unter Windows und Werte übergeben on Mon, 10 Apr 2006 20:02:13 GMT]]></title><description><![CDATA[<p>Der Code-Vorschlag von LordJaxom wird fehlschlagen, da die struct in main vom Stack aquiriert wird und nach dem Verlassen von main nicht mehr gültig ist. Dieser Fehler kann durch Verwenden einer globalen Variablen umgangen werden, noch sauberer ist es, die Datenstruktur mit new oder malloc zu erzeugen und den Zeiger auf diese Struktur an den Thread zu übergeben. Der Thread muss dann die Datenstruktur nach Gebrauch zerstören, um memory-leaks zu vermeiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034791</guid><dc:creator><![CDATA[mgs_]]></dc:creator><pubDate>Mon, 10 Apr 2006 20:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to Threads unter Windows und Werte übergeben on Mon, 10 Apr 2006 20:51:13 GMT]]></title><description><![CDATA[<p>hat LordJaxom doch auch alles geschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034805</guid><dc:creator><![CDATA[gsdfgf]]></dc:creator><pubDate>Mon, 10 Apr 2006 20:51:13 GMT</pubDate></item></channel></rss>