C++ wątek ze wskaźnikami
: 24 lipca 2010, 14:03
Zrobiłem program, który tworzy wątek i porównuje 2 liczby(zmiennoprzecinkowe) i wybiera mniejszą. Zrobiłem i działa normalnie ale niestety muszę jeszcze go tak zmienić aby wątek tylko porównywał liczby a dopiero w głównej funkcji "main" przekazywał wynik. Potrzeba "printf" usunąć z wątku i jakoś przekazać wynik do głównej funkcji by dopiero w ostatnim "printf" w programie pobierało wynik. Kombinowałem różnie ale nie działa albo nie chce mi pokazywać wyniku. Jakby ktoś coś podpowiedział było by dobrze.
Kod: Zaznacz cały
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
/* oblicza mniejsza liczbe
*/
void* mniej (void* arg)
{
double *tab;
tab = (double*) arg;
printf("dwie zmienne to:%lf,%lf\n", tab[0],tab[1]);
if(tab[0]<tab[1])
printf("MNIEJSZA TO %lf\n", tab[0]);
if(tab[1]<tab[0])
printf("MNIEJSZA TO %lf\n ", tab[1]);
}
int main ()
{
pthread_t thread;
double ta[2];
double *wynik;
printf("wpisz pierwsza zmienna \n");
scanf("%lf", &ta[0]);
printf("wpisz 2 zmienna \n");
scanf("%lf", &ta[1]);
if (pthread_create (&thread, NULL, &mniej, (void*) &ta));
//printf("blad \n");
/* Czekaj na zakonczenie watka i odbierz wynik. */
if (pthread_join (thread, (void **) &wynik)); {
//printf("blacz przy konczeniu watku\n");
exit(2);
}
/* Wydrukuj mniejsza liczbe. */
printf("Mniejsza liczba to %lf\n", *wynik);
return 0;
}