Bonjour,
Lors de la compilation, j'obtiens cette erreur du compilateur :
Main.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Main.c Main.c(12): warning C4047: 'initialisation'*: les niveaux d'indirection de 'char' et de 'char [13]' sont différents d:\6. megasync\elearning\c\optableau\main.c(26) : warning C4700: variable locale 'tabNumb1' non initialisée utilisée d:\6. megasync\elearning\c\optableau\main.c(43) : warning C4700: variable locale 'tabNumb2' non initialisée utilisée cl.exe /c Entry.c
Entry.c
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 #include <stdio.h> #include <stdbool.h> #include "Entry.h" #include "Output.h" #include "OperTable.h" int main(){ int numEntry; bool continueApp = true; char tabPlace1 = "./table1.txt", tabPlace2 = "./table2.txt"; int *tabNumb1, *tabNumb2; do { int sizeTabSum; ShowMenu(); switch (NumbMenu(1, 6)) { case 1: if ((sizeTabSum = CountLines(&tabPlace1)) == -1) break; SizeTab(tabNumb1, sizeTabSum); SumTab(tabNumb1, sizeTabSum); break; case 2: if ((sizeTabSum = CountLines(&tabPlace1)) == -1) break; SizeTab(tabNumb1, sizeTabSum); AverageTab(tabNumb1, sizeTabSum); break; case 3: if ((sizeTabSum = CountLines(&tabPlace1)) == -1) break; SizeTab(tabNumb1, sizeTabSum); SizeTab(tabNumb2, sizeTabSum); CopPasteTab(tabNumb1, tabNumb2, sizeTabSum); break; case 4: if ((sizeTabSum = CountLines(&tabPlace1)) == -1) break; SizeTab(tabNumb1, sizeTabSum); MaxTab(tabNumb1, sizeTabSum, 20); break; case 5: if ((sizeTabSum = CountLines(&tabPlace1)) == -1) break; SizeTab(tabNumb1, sizeTabSum); SortTab(tabNumb1, sizeTabSum); break; case 6: continueApp = false; break; default: continueApp = false; break; } } while (continueApp == true); return 0; }
J'ai regardé sur internet ce que ça pouvait vouloir dire : https://docs.microsoft.com/fr-fr/cpp...-level-1-c4047.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 #include <stdio.h> #include <stdlib.h> int NumbMenu(const int MIN, const int MAX) { int numbChoosed = 0; //loop break, only "if" validated while (1) { printf("Choisissez l'une des option du menu comprises entre %d et %d : ", MIN, MAX); char keybEntry[10 + 1]; fgets(keybEntry, 10 + 1, stdin); int status = 0; status = sscanf(keybEntry, "%d", &numbChoosed); if (status == 1 && numbChoosed >= MIN && numbChoosed <= MAX) break; // Message showed, only "if" not validated printf("! Entree incorrect - Veuillez entrer un nombre compris entre %d et %d !\n", MIN, MAX); } return numbChoosed; } int CountLines(char* fileName) { FILE* fileBuffer; int numbLines = 0; if ((fileBuffer = fopen(fileName, "r")) == NULL) { printf("! Erreur - Echec de l'ouverture du fichier %s !\n", fileName); // sentry value return -1; } int number; while (fscanf(fileBuffer, "%d\n", number) != NULL) ++numbLines; fclose(fileBuffer); return numbLines; } int SizeTab(int* tab, int sizeTab) { tab = malloc(sizeof(int)*(sizeTab + 1)); if (tab == NULL) { puts("! Erreur - Echec de l'allocation de memoire"); return 1; } return 0; } int GetTabNumbTxt(int *tab, char *fileName) { FILE* fileBuffer; if ((fileBuffer = fopen(fileName, "r")) == NULL) { printf("! Erreur - Echec de l'ouverture du fichier %s !\n", fileName); perror("! L'erreur suivante est apparue:"); // sentry value return 1; } while((sscanf(fileBuffer, "%d\n", tab)) != EOF) tab++; fclose(fileBuffer); return 0; }
Mais je ne comprend pas trop pourquoi il me sort cette erreur de pointeur. Est-ce lié au fait que j'ai déclaré deux tableaux de caractères, l'un à la suite de l'autre ?
Merci d'avance,
Red'
Partager