Chciałbym uruchomić wątek. Potrzebuje dla funkcji kilku danych, wiec jako argument podaję strukturę. W funkcji nie chcę operować bezpośrednio na podanej strukturze, ale na jej kopii.
void *graph::przeszukaj ( void *t ) {
struct argum *temp;
temp = (struct argum *) t;
...
}
void graph::szukajSciezki () {
struct argum obj;
vector <pthread_t> watek(0);
...
for (int i = 0; i<ilJobow; i++) {
...
pthread_create( &watek[i], NULL, przeszukaj, (void *) &*&obj);
}
...
}
Kompilator zwraca:
graph.cpp: In member function ‘void graph::szukajSciezki()’:
graph.cpp:156: error: argument of type ‘void* (graph::)(void*)’ does not match ‘void* (*)(void*)’
Linia 156 to
pthread_create( &watek[i], NULL, przeszukaj, (void *) &*&obj);
Spodziewam się, że problem tkwi w wywoływaniu metody należącej do klasy, ale nie mam pomysłu jak powinienem ją wywołać, aby działało poprawnie. Liczę na Waszą pomoc.