Hallo,
pthread_create(&thr1, NULL, thread_ball, &ballargs);
Was passiert mit background und display nach dem pthread_create-Aufruf?
Das ist irgendwie das, was ich herausfinden will. Ab hier stelle ich es mir so vor, dass die Funktion thread_ball nun die Argumente übernommen hat, was sie wahrscheinlich auch getan hat, da ich die Grafiken sehen konnte.
Die Frage ist aber nun, wie ich meine Werte aus der Struktur wieder
richtig herausbekomme?über myarg->background bzw. myarg->display.
Das Programm lässt sich zwar kompilieren, aber es läuft nicht richtig.
Siehe dazu meine Frage weiter oben. Ausserdem musst du daran denken, dass
du mit myarg->background bzw. myarg->display Pointer auf SDL_Surface
bekommst. Wenn du also die Funktion ball aufrufst, darfst du sie nicht
nochmal referenzieren:
ball(myarg->background, myarg->display)
Das verstehe ich leider nicht. Die Funktion ball habe ich nach thread_ball umbenannt und wo genau ist diese Verwendung ball(myarg->background, myarg->display) gedacht?
Ich poste mal das File, um vielleicht einen besseren Überblick zu verschaffen.
Durch das Verschieben der einzelnen Zeilen ist es leider nicht so ganz übersichtlich.
http://test.pithax.net/main.c
Diese Funktion funktioniert nun nicht. Ich bekomme beim Kompilieren durch die letzten Zeilen eine Fehlermeldung, dass ich einen Pointer zu einem inkompatiblen Typ dereferenziere.
Markus
sh:( fo:| ch:? rl:( br:> n4:( ie:{ mo:) va:) de:] zu:) fl:( ss:| ls:] js:|