Passer plusieurs arguments à un thread en C (pthread_create)

Je suis en train de passer 2 les entiers non signés sur un nouveau thread en C (à l'aide de pthread_create ()), mais ni l'un tableau de 2 entiers ou d'un struct semble fonctionner.

//In my socket file

struct dimension {
    unsigned int width;
    unsigned int height;
};

unsigned int width, height;

void setUpSocket(void* dimension) {

    struct dimension* dim = (struct dimension*) dimension;

    width = dim->width;
    height = dim->height;

    printf("\n\nWidth: %d, Height: %d\n\n", width, height);

}

//In main.cpp

//Pass a struct in pthread_create
struct dimension dim;
dim.width = w;
dim.height = h;

pthread_create(&ph, &attr, (void * (*)(void *)) setUpSocket, (void *) &dim);

Avant d'appeler pthread_create, dim.largeur et dim.hauteur sont corrects. Dans mon fichier de socket, seule la largeur est définie, la hauteur est de 0, et je ne comprends pas pourquoi.

Personne ne sait quel est le problème s'il vous plaît et comment le résoudre?

Merci beaucoup.

  • votre fil doit retourner void * et pas void. Ainsi, vous pouvez arrêter de le faire funky typecasting je ne comprends pas 😛
InformationsquelleAutor Jary316 | 2011-06-29