Probleme de pointeur
Fermé
encoremoi
-
1 sept. 2009 à 11:12
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 1 sept. 2009 à 11:39
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 1 sept. 2009 à 11:39
A voir également:
- Probleme de pointeur
- Pointeur souris - Guide
- Pointeur souris disparu windows 10 - Guide
- Pointeur souris disparu pc portable asus - Guide
- Pointeur satellite astra gratuit - Forum TNT / Satellite / Réception
- Pointeur satellite fransat ✓ - Forum TNT / Satellite / Réception
4 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
1 sept. 2009 à 11:33
1 sept. 2009 à 11:33
Salut,
printf("la valeur du resultat est: %d\n",mes.resultY);
Je ne vois pas où tu affecte des valeurs pour les 3 derniers champs de ta structure mes qui n'est pas un pointeur de structure donc tu dois utiliser mes.champ et pas mes->champ
printf("la valeur du resultat est: %d\n",mes.resultY);
Je ne vois pas où tu affecte des valeurs pour les 3 derniers champs de ta structure mes qui n'est pas un pointeur de structure donc tu dois utiliser mes.champ et pas mes->champ
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
1 sept. 2009 à 11:20
1 sept. 2009 à 11:20
es tu sur d'avoir initialisé le message?
peux t on voir qq bouts de code ?
peux t on voir qq bouts de code ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
1 sept. 2009 à 11:20
1 sept. 2009 à 11:20
Salut,
Affiche ta structure ainsi que l'affectation de champ result
Affiche ta structure ainsi que l'affectation de champ result
je pense :
voila le code du programme qui lit:
et le programme qui écrit le fgait de la facon suivante:
MESSAGE mes;
mes->resultY=(mes->resultA)+(mes->resultB)+(mes->y);
voila le code du programme qui lit:
typedef struct { long type; int a; int b; int y; int resultA; int resultB; int resultY; }MESSAGE; typedef struct { int x; }SEGMENT; SEGMENT *pSeg; void erreur (char *mes); int main (void) { int pidA ,pidB, pidY; int cle ,msgid,shmid,ret; char *argv[2]; MESSAGE mes; //Creation de la clef cle = ftok("fich",'1'); if(cle == -1) erreur(" A: pb de creation de la cle"); //Creation de la file msgid = msgget(cle,IPC_CREAT|0666); if(msgid == -1) erreur(" A: pb de creation de la file"); //creation du fils A pidA = fork(); if (pidA == 0) { argv[0] = "filsA"; argv[1]=NULL; if((ret= execv ("filsA", argv)) == -1); erreur ("A : pb de creation de la fille A"); } //creation du fils B pidB = fork(); if (pidB == 0) { argv[0] = "filsB"; argv[1]=NULL; if((ret= execv ("filsB", argv)) == -1); erreur ("A : pb de creation de la fille B"); } //creation du fils Y pidY = fork(); if (pidY == 0) { argv[0] = "filsY"; argv[1]=NULL; if((ret= execv ("filsY", argv)) == -1); erreur ("A : pb de creation de la fille Y"); } //saisie des coeff printf("taper a: "); scanf("%d",&mes.a); printf("taper b: "); scanf("%d",&mes.b); printf("taper y: "); scanf("%d",&mes.y); mes.type=pidA; ret=msgsnd(msgid,&mes,sizeof(MESSAGE)-sizeof(long),0); if(ret==-1) erreur("M: pb envoi de mess A"); mes.type=pidB; ret=msgsnd(msgid,&mes,sizeof(MESSAGE)-sizeof(long),0); if(ret==-1) erreur("M: pb envoi de mess B"); mes.type=pidY; ret=msgsnd(msgid,&mes,sizeof(MESSAGE)-sizeof(long),0); if(ret==-1) erreur("M: pb envoi de mess C"); sleep(1); printf("la valeur du resultat est: %d\n",mes.resultY); wait(NULL); wait(NULL); wait(NULL); return(0); } void erreur(char *mes) { printf("%s\n",mes); exit(-1); }
et le programme qui écrit le fgait de la facon suivante:
MESSAGE mes;
mes->resultY=(mes->resultA)+(mes->resultB)+(mes->y);
1 sept. 2009 à 11:39