Bonjour,
j'ai un petit problème avec mon programme.
J'ai une fonction qui prend en entrée un int, à partir de cet int je créé une chaîne (t + l'int).
Jusque là pas de problème, j'affiche un résultat correct avec le printf.
Par contre, quand je veux rentrer cette chaîne dans le champ identificateur de ma structure Objet, ça ne marche pas, j'ai un seg fault.
J'imagine que c'est un problème de pointeur mal fait, mais je ne trouve pas la solution.
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 struct Objet{ char identificateur[3]; char objet_content[127]; }; typedef struct Objet Objet; int threadProd(int num){ int period=100; /* en millisecondes */ char type_objet[3]; char* trame; Objet* info; char* num2; sprintf(type_objet,"t%d\0",num); printf("%s\n",type_objet); sprintf(info->identificateur),"%s",type_objet); printf("%s\n and pid = %d\n",info->identificateur,getpid()); sprintf(info->objet_content,"25\0"); sprintf(trame,"%s%s",info->identificateur,info->objet_content); printf("valeur copiee %s\n",trame); // write(fd[num][1],trame,4); // sleep(period); printf("valeur copiee %s\n",trame); return 0; }
Merci pour votre aide.
Edit : Si je meten commentaire, le printf suivant s'affiche et j'ai le seg fault après. Donc mon bug viendrait plus tard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sprintf(info->identificateur,"%s",type_objet);
Partager