Salut je lis un cour sur la programmation syst�me en C, Depuis hier je traine sur un exercice sur les thread que voici:
�crire un programme qui cr�e un thread qui alloue un tableau d�entiers,
initialise les �l�ments par des entiers al�atoires entre 0 et 99, et retourne le tableau d�entiers.
Le probl�me est que je n'arrive pas lire la variable renvoyer par le thread je tombe sur cette erreur dans la console au moment de l'affichage des valeur du tableau via printf :
$ zsh: segmentation fault
Voice le code que j'ai �cris:
Je pense que c'est lier � la mani�re dont j'utilise les pointeur vu le message d'erreur (zsh: segmentation fault), mais je n'arrive pas � corriger l'erreur j'ai m�me essayer avec une simple variable au lieu d'un tableau mais
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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
33
34
35
36
37
38
39 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <pthread.h> void *maFontion(void*arg) { int tableau[10]={0}; printf("On est dans le thread, on initialise le tableau par des valeur aléatoire\n"); for (int i = 0; i < 10; i++) { tableau[i]= rand()%99; } pthread_exit((void*)tableau); } int main(void) { pthread_t monThread; int *tableau =NULL; if(pthread_create(&monThread,NULL,maFontion,NULL) != 0) { perror("pthread_create"); exit(-1); } pthread_join(monThread,(void*)&tableau); printf("On est dans le main on lit la valeur de tableau\n"); for (int i = 0; i < 10; i++) { printf("Valeur numero %d => %d\n", i , tableau[i]); } return 0; }.
merci d'avance.
Partager