Markus Pitha: Mehrere Argumente an Threads in C?

Beitrag lesen

Hi,
also irgendwie kommeich damit nicht klar.
Ich habe eine Struktur erzeugt:

struct ball    {
SDL_Surface *background;
SDL_Surface *display;
} ballargs;

..dann habe ich die Variablen, die ich ursprünglich übergeben wollte den Variablen in der Struktur zugewiesen (wobei background und display Zeiger auf den Typ SDL_Surface sind):

ballargs.background = background;
ballargs.display = display;

..und alles dem Thread übergeben...
pthread_create(&thr1, NULL, thread_ball, &ballargs);

In der Funktion, die ich nun thread_ball genannt habe, nehme ich sie entgegen:
void *thread_ball(void *arg)    {
struct ballargs *myarg = (struct ballargs *)arg;

Die Frage ist aber nun, wie ich meine Werte aus der Struktur wieder richtig herausbekomme?
Kombinationen von myarg.background, (*myarg).background, oder myarg->background
haben nichts gebracht. Das Programm lässt isch zwar kompilieren, aber es läuft nicht richtig. Offensichtlich irgend ein Zeigerfehler, da ich Xlib Fehlermeldungen in der Konsole bekomme, und die Grafiken tun eigentlich auch nicht das, was sie sollten.

Markus.

--
sh:( fo:| ch:? rl:( br:> n4:( ie:{ mo:) va:) de:] zu:) fl:( ss:| ls:] js:|