Я пытаюсь передать 2 беззнаковых целых во вновь созданный поток в C (используя pthread_create ()), но ни массив из 2 целых чисел, ни структура не работают.
// 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);
Перед вызовом pthread_create, dim.width и dim.height верны. В моем файле сокета установлена только ширина, высота 0, и я не понимаю, почему.
Кто-нибудь знает, что не так, пожалуйста и как это исправить?
Большое спасибо.