Utilité de (void**)&variable
Bonjour à toutes et à tous,
je suis en train de suivre un cours d'initiation à la programmation système, notamment les pthread sous linux.
Nous avons vu un simple programme réalisant la somme de n premiers nombres dans deux thread, et à la fin le produit des deux résultats dans le thread principal:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
void *run(void *arg) {
int i, n = *((int*)arg);
int *s=malloc(sizeof(int));
*s=0;
if (n>0){
for (i=1;i<=n;i++) *s+=i;
}
return s;
}
int main(void) {
pthread_t thread1, thread2;
int n1=3, n2=4;
int *r1, *r2;
pthread_create( &thread1, NULL, run, &n1);
pthread_create( &thread2, NULL, run, &n2);
pthread_join( thread1, (void**)&r1);
pthread_join( thread2, (void**)&r2);
printf("Resultat %d\n", *r1 * *r2);
return EXIT_SUCCESS;
} |
Je n'arrive pas à comprendre l'utilité de : .
Pourriez vous m'aider s'il vous plait ?
Merci par avance !