Note qu'un int (en c++) fait tjrs 4B : http://msdn.microsoft.com/en-us/library/s3f49ktz%28v=vs.80%29.aspx
Oublis pas de noter le post comme "résolut" STP.
Contant de t'avoir aidé !
Bonne...
Type: Messages; Utilisateur: djuju
Note qu'un int (en c++) fait tjrs 4B : http://msdn.microsoft.com/en-us/library/s3f49ktz%28v=vs.80%29.aspx
Oublis pas de noter le post comme "résolut" STP.
Contant de t'avoir aidé !
Bonne...
Et comme ça, ? C'est mieux non ;)
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
#include <pthread.h>
C'est une vue de l'esprit. En fait, comme tu alloue ton tableau avec malloc, chaque cellule contient une valeur aléatoire (celle qui était déjà là).
Mais comme tu fais pti++, tu ne fais avancé ton...
Note aussi que tu demande à tes deux threads de faire quasiment la même chose.
Ton thread 1 cherche de l'index 0 à x/2
Ton thread 2 cherche de l'index 0 à x-x/2 (donc soit x/2, soit x/2+1)
Si...
Tu n'as pas de 1ier et 2ieme tableau, ou il y a un truc que j'ai loupé... Pour moi tu n'as que pdt et tu le remplis mal (je viens de le voir)
int *pti, *ptd;
...
Tu peux le remplacer par un t[1] = t[0], mais ça devrait fonctionner...
Il plante ou il compile pas ?
S'il ne compile pas, donne moi l'output du compilateur.
Note que tu pourrais faire
pthread_join (p[i], NULL);
Et aller lire ton résultat directement depuis le tableau t
p.e.
printf("le nombre entr� se trouve en position : %d\n",...
Voici une correction rapide. Dis moi si ça marche, car je n'ai pas pu compilé (je suis sous windows et sans pthread).
Si le problème persiste, j’essaierais ça ce soir sous Linux.
#include...
Salut,
Je suis entrain de regarder ça.
Note que j'avais pas vu que tu faisais des calloc et pas des new, donc laisse tomber l'histoire d'alignement mémoire.
Si ton prof ne t'as pas demandé de faire d'arithmétique de pointer, n'en fais pas. Tu vas perdre des points plutôt qu'en gagner.
Si mon t+i*sizeof(structure) ne fonctionne pas, c'est peut être...
Ca devrait il me semble. Mais laisse tomber, c'est de l’arithmétique de pointer c'est jamais bon... Et surtout souvent illisible...
Préfères &t[i], soit un pointer sur l'index i du tableau t. Ca...
Ok, dit moi si je comprend bien. Tu veux faire un tableau à 2 index de "structure" et passé chaque index à un thread différent ?
Si c'est la cas, tu n'as effectivement pas besoin de synchro...
Le lien que je t'ai donné pour les enjeux de la synchro n'est pas très détaillé.
Je te conseille donc plutot de lire celui-ci, car même s'il parle de Java, les principes qu'il présente sont...
Salut,
Ton problème vient de l’absence de synchronisation de tes threads et plus particulièrement de la ligne
((struct structure *)data)->position=i+1;
Quand plusieurs threads accèdent...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.