Probléme à la compilation[C++]
Ralphy_
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Avec des amis nous travaillons sur un projet de programmation, lors de la compilation de notre programme, il retourne les erreurs suivantes
Voici les signatures des fonctions concernées :
void MajLig(int n,element** grille, int l, int v)
void MajCol(int n,element** grille, int c, int v)
void MajBloc(int n,element** grille, int l,int c,int v)
void RetablirDansBloc(int n, element** grille, int l, int c, int v)
void RetablirDansCol(int n,element** grille, int c, int v)
void RetablirDansLig(int n,element** grille,int l, int v)
void Regle3Lig(int n,element** grille,int lig, int *comptRemplissage)
void Regle3Col(int n,element** grille,int col, int *comptRemplissage)
void Regle3Bloc(int n,element** grille, int FactCol,int FactLig, int *comptRemplissage)
void Regle2lig(int n, element** grille, int lig, int* comptRemplissage)
void Regle2col(int n,element** grille,int col, int* comptRemplissage)
void Regle2bloc(int n, element** grille, int FactLig, int FactCol, int* comptRemplissage)
void Regle1(int n,element** grille, int lig, int col, int* comptRemplissage)
Voici comment on fait appel aux fonctions via le main :
MajLig( n, grille, lig-1, valeurTemp);
MajCol(n, grille, col-1, valeurTemp);
MajBloc(n, grille, lig-1, col-1, valeurTemp);
RetablirDansLig(n, grille, lig-1, grille[lig-1][col-1].ValeurFinale);
RetablirDansCol(n,grille,col-1, grille[lig-1][col-1].ValeurFinale);
RetablirDansBloc(n,grille,lig-1, col-1, grille[lig-1][col-1].ValeurFinale);
MajLig(n,grille, lig-1, valeurTemp);
MajCol(n,grille, col-1, valeurTemp);
MajBloc(n,grille, lig-1,col-1, valeurTemp);
Regle1(n,grille,lig,col, &comptRemplissage);
Regle2col(n,grille,col,&comptRemplissage);
Regle2lig(n,grille,lig,&comptRemplissage);
Regle2bloc(n, grille,FactCol,FactLig,&comptRemplissage);
Regle3Lig(n,grille, lig, &comptRemplissage);
Regle3Col(n,grille,col,&comptRemplissage);
Regle3Bloc(n,grille,FactCol,FactLig,&comptRemplissage);
Je ne pense pas que le souci vienne des ordinateurs surlesquels je travaille car je suis sur plusieurs environnements différents.(au cas où)
la variable n est déclarée au début du main() et est saisie dès le début, la suite du programme ne se fait pas si n n'est pas un entier.
J'ai cherché sur internet et je ne trouve rien, c'est peut être tout bête, mais je débute dans la programmation et même à 3, on voit pas ce qu'il se passe.
Merci pour votre aide.
Avec des amis nous travaillons sur un projet de programmation, lors de la compilation de notre programme, il retourne les erreurs suivantes
Compiler: Default compiler Executing g++.exe... g++.exe "E:\raphtest.cpp" -o "E:\raphtest.exe" -I"E:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"E:\Dev-Cpp\include\c++\3.4.2\backward" -I"E:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"E:\Dev-Cpp\include\c++\3.4.2" -I"E:\Dev-Cpp\include" -L"E:\Dev-Cpp\lib" E:\raphtest.cpp: In function `int main()': E:\raphtest.cpp:462: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void MajLig(int, element**, int, int)' E:\raphtest.cpp:463: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void MajCol(int, element**, int, int)' E:\raphtest.cpp:464: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void MajBloc(int, element**, int, int, int)' E:\raphtest.cpp:468: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void RetablirDansLig(int, element**, int, int)' E:\raphtest.cpp:469: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void RetablirDansCol(int, element**, int, int)' E:\raphtest.cpp:470: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void RetablirDansBloc(int, element**, int, int, int)' E:\raphtest.cpp:475: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void MajLig(int, element**, int, int)' E:\raphtest.cpp:476: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void MajCol(int, element**, int, int)' E:\raphtest.cpp:477: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void MajBloc(int, element**, int, int, int)' E:\raphtest.cpp:509: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void Regle1(int, element**, int, int, int*)' E:\raphtest.cpp:515: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void Regle2col(int, element**, int, int*)' E:\raphtest.cpp:519: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void Regle2lig(int, element**, int, int*)' E:\raphtest.cpp:524: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void Regle2bloc(int, element**, int, int, int*)' E:\raphtest.cpp:529: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void Regle3Lig(int, element**, int, int*)' E:\raphtest.cpp:533: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void Regle3Col(int, element**, int, int*)' E:\raphtest.cpp:538: error: cannot convert `element (*)[((unsigned int)((int)n))]' to `element**' for argument `2' to `void Regle3Bloc(int, element**, int, int, int*)' Execution terminated
Voici les signatures des fonctions concernées :
void MajLig(int n,element** grille, int l, int v)
void MajCol(int n,element** grille, int c, int v)
void MajBloc(int n,element** grille, int l,int c,int v)
void RetablirDansBloc(int n, element** grille, int l, int c, int v)
void RetablirDansCol(int n,element** grille, int c, int v)
void RetablirDansLig(int n,element** grille,int l, int v)
void Regle3Lig(int n,element** grille,int lig, int *comptRemplissage)
void Regle3Col(int n,element** grille,int col, int *comptRemplissage)
void Regle3Bloc(int n,element** grille, int FactCol,int FactLig, int *comptRemplissage)
void Regle2lig(int n, element** grille, int lig, int* comptRemplissage)
void Regle2col(int n,element** grille,int col, int* comptRemplissage)
void Regle2bloc(int n, element** grille, int FactLig, int FactCol, int* comptRemplissage)
void Regle1(int n,element** grille, int lig, int col, int* comptRemplissage)
Voici comment on fait appel aux fonctions via le main :
MajLig( n, grille, lig-1, valeurTemp);
MajCol(n, grille, col-1, valeurTemp);
MajBloc(n, grille, lig-1, col-1, valeurTemp);
RetablirDansLig(n, grille, lig-1, grille[lig-1][col-1].ValeurFinale);
RetablirDansCol(n,grille,col-1, grille[lig-1][col-1].ValeurFinale);
RetablirDansBloc(n,grille,lig-1, col-1, grille[lig-1][col-1].ValeurFinale);
MajLig(n,grille, lig-1, valeurTemp);
MajCol(n,grille, col-1, valeurTemp);
MajBloc(n,grille, lig-1,col-1, valeurTemp);
Regle1(n,grille,lig,col, &comptRemplissage);
Regle2col(n,grille,col,&comptRemplissage);
Regle2lig(n,grille,lig,&comptRemplissage);
Regle2bloc(n, grille,FactCol,FactLig,&comptRemplissage);
Regle3Lig(n,grille, lig, &comptRemplissage);
Regle3Col(n,grille,col,&comptRemplissage);
Regle3Bloc(n,grille,FactCol,FactLig,&comptRemplissage);
Je ne pense pas que le souci vienne des ordinateurs surlesquels je travaille car je suis sur plusieurs environnements différents.(au cas où)
la variable n est déclarée au début du main() et est saisie dès le début, la suite du programme ne se fait pas si n n'est pas un entier.
J'ai cherché sur internet et je ne trouve rien, c'est peut être tout bête, mais je débute dans la programmation et même à 3, on voit pas ce qu'il se passe.
Merci pour votre aide.
A voir également:
- Probléme à la compilation[C++]
- Breach compilation c'est quoi - Guide
- Compilation error: expected unqualified-id before '{' token ✓ - Forum C++
- Problème Compilation Dev-C++ - Forum C++
- Must declare a named package because this compilation unit is associated to the named module - Forum Java
- Erreur de compilation projet ou bibliothèque introuvable - Forum Excel
4 réponses
Salut,
Lorsque tu passes un tableau 2D à une fonction, le compilateur doit être en mesure de distinguer la taille des colonnes. Sinon la notation grille[i][j] n'a plus de sens. Voilà pourquoi tu dois donner la taille des colonnes au compilateur dans le prototype des fonctions.
Voici un lien qui explique ceci : http://www.ensta.fr/~enstar/doc/c++/courscpp/Sections/Sect05-B2.html
Néanmoins, si tu connais la taille à la compilation tu peux faire tout simplement :
Cdlt
Lorsque tu passes un tableau 2D à une fonction, le compilateur doit être en mesure de distinguer la taille des colonnes. Sinon la notation grille[i][j] n'a plus de sens. Voilà pourquoi tu dois donner la taille des colonnes au compilateur dans le prototype des fonctions.
Voici un lien qui explique ceci : http://www.ensta.fr/~enstar/doc/c++/courscpp/Sections/Sect05-B2.html
Néanmoins, si tu connais la taille à la compilation tu peux faire tout simplement :
void MajLig(int n,element grille[][TAILLE], int l, int v)
Cdlt
comment tu déclares ta variable grille dans main,
tu peux voir le tutoriel sur les pointeurs : https://cpp.developpez.com/cours/cpp/?page=page_6#LVI-B
tu peux voir le tutoriel sur les pointeurs : https://cpp.developpez.com/cours/cpp/?page=page_6#LVI-B