Bonjour a tous. Je débute en C et j'aurais besoin de vos lumières.
J'essaye de faire remplir un tableau par une fonction pour ensuite pouvoir continuer d'utiliser mon tableau dans mon programme principal.
Dans ma fonction, les valeurs du tableau sont correctes.
Dans mon programme principal, les valeurs sont incorrectes.
Voici mon code :
Et voici les valeurs que me sort le printf:
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
40
41
42 int getTabScore(int* scoreS) { FILE *fichier; char tampon[BUFSIZ]; int actuel = 0, cpt = 0, c; fichier = fopen ("scores.txt", "r"); if (!fichier) return EXIT_FAILURE; while ((c = fgetc (fichier)) != EOF) { if (c == ';'){ actuel = 0; memset (tampon, 0, sizeof tampon); } else if (c == '\n'){ scoreS[cpt] = atoi(tampon); cpt++; actuel = 0; memset (tampon, 0, sizeof tampon); } else tampon[actuel++] = c; } for (int j = 0; j <10; j = j+1) { printf("i: %d, score: %d",j, scoreS[j]); printf("\n"); } } int main(int argc, char *argv[]) { int* scores[10]; getTabScore(scores); for (int j = 0; j <10; j = j+1) { printf("i: %d, score: %d",j, scores[j]); printf("\n"); } return EXIT_SUCCESS; }
- dans la fonction getTabScore
i: 0, score: 10000
i: 1, score: 9000
i: 2, score: 8000
i: 3, score: 7000
i: 4, score: 6000
i: 5, score: 5000
i: 6, score: 4000
i: 7, score: 3000
i: 8, score: 2000
i: 9, score: 1000
- dans le main
i: 0, score: 10000
i: 1, score: 8000
i: 2, score: 6000
i: 3, score: 4000
i: 4, score: 2000
i: 5, score: 19986320
i: 6, score: 1901871984
i: 7, score: -756535753
i: 8, score: -48123601
i: 9, score: -1227083849
Je ne comprends pas pourquoi les valeurs sont differentes :/.
Merci d'avance pour votre aide.
Super-zen.
Partager