Bonsoir
J'ai fait une structure qui doit représenter un entier grace a sa valeur sous forme de chaine de caractère et le nombre de chiffres de cet entier.
Dans une main, je l'initialise en appelant une autre fonction, puis je modifie cet entier en "concaténant" 1 a la fin de celui-ci.
Mais voila, rien ne marche![]()
Peu importe la valeur de l'initialisation, les paramètres de la structure restent a 0.
Voici la partie du code concernée (répartie en fait dans plein de fichiers)
J'espere avoir été assez clair
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 typedef struct { char *valeur; int nbchiffres; } ValeurCourante; int main(int argc, char **argv) { ValeurCourante *d; d=malloc(sizeof(ValeurCourante)); InitValeurCourante(*d); printf("Initialisation -> valeur : %d, nbchiffres : %d \n", (d->valeur), d->nbchiffres); init_display(argc, argv, d); MainLoop(); free(d); return 0; } void InitValeurCourante(ValeurCourante vc) { vc.valeur="999";/* vc.valeur un pointeur vers la valeur 999*/ vc.nbchiffres=12; } void ajouter1(ValeurCourante vc) { vc.valeur="1"; vc.nbchiffres++; } void ajouterChiffre1(Widget w, void *d) { /* d désigne la ValeurCourante */ /* ajouter 1 a la ValeurCourante */ ValeurCourante *t; t = (ValeurCourante *) d; ajouter1(*t); printf("valeur : %d, nbchiffres : %d \n", (int)t->valeur, t->nbchiffres); }
Je ne vois pas pourquoi tout ca reste constant.Si quelqu'un pouvait m'aider?
Partager