[C] Tableaux en 2D transmis en fonction
Résolu
jcl571
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
jcl571 Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
jcl571 Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Tout d'abord, je dois dire que le programme fonctionne parfaitement, donc je sais que, de la façon que je l'ai fait, ça fonctionne. Voici un peu ce que j'ai fait en gros (pour vous mettre dans le contexte, c'est un système de gestion d'étudiants d'une Université de 100 personnes):
void afficheEtudiants(char listePrenoms[][TAILLE_CHAINE + 1],
char listeNoms[][TAILLE_CHAINE + 1], int listeMatricules[TAILLE_CHAINE + 1])
//ceci est la fonction qui reçoit
afficheEtudiants(&prenoms[0][0], &noms[0][0], matricules);
//ceci est ce que le main envoie
(Noter: je n'ai pas de problème avec matricules, seulement les tableaux en 2D)
Donc, si vous comprenez bien, j'envoie l'adresse de la première case des tableaux 2D. Tout marche bien, sauf que j'ai ces 4 warning (2 différents):
warning C4047: 'function' : 'char (*)[51]' differs in levels of indirection from 'char *'
warning C4024: 'afficheEtudiants' : different types for formal and actual parameter 1
warning C4047: 'function' : 'char (*)[51]' differs in levels of indirection from 'char *'
warning C4024: 'afficheEtudiants' : different types for formal and actual parameter 2
Je trouve ces warning assez irritants, en plus que les warning sont très pénalisés lors de la correction du travail.
Quelqu'un saurait ce qui cause ces warning (je rapelle qu'après multiples tests, tout fonctionne)?
Merci d'avance!
Tout d'abord, je dois dire que le programme fonctionne parfaitement, donc je sais que, de la façon que je l'ai fait, ça fonctionne. Voici un peu ce que j'ai fait en gros (pour vous mettre dans le contexte, c'est un système de gestion d'étudiants d'une Université de 100 personnes):
void afficheEtudiants(char listePrenoms[][TAILLE_CHAINE + 1],
char listeNoms[][TAILLE_CHAINE + 1], int listeMatricules[TAILLE_CHAINE + 1])
//ceci est la fonction qui reçoit
afficheEtudiants(&prenoms[0][0], &noms[0][0], matricules);
//ceci est ce que le main envoie
(Noter: je n'ai pas de problème avec matricules, seulement les tableaux en 2D)
Donc, si vous comprenez bien, j'envoie l'adresse de la première case des tableaux 2D. Tout marche bien, sauf que j'ai ces 4 warning (2 différents):
warning C4047: 'function' : 'char (*)[51]' differs in levels of indirection from 'char *'
warning C4024: 'afficheEtudiants' : different types for formal and actual parameter 1
warning C4047: 'function' : 'char (*)[51]' differs in levels of indirection from 'char *'
warning C4024: 'afficheEtudiants' : different types for formal and actual parameter 2
Je trouve ces warning assez irritants, en plus que les warning sont très pénalisés lors de la correction du travail.
Quelqu'un saurait ce qui cause ces warning (je rapelle qu'après multiples tests, tout fonctionne)?
Merci d'avance!
A voir également:
- [C] Tableaux en 2D transmis en fonction
- Fonction si et - Guide
- Mise en forme tableau word - Guide
- Logiciel plan 2d gratuit - Télécharger - Architecture & Déco
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
2 réponses
Salut,
Quand tu appelles ta fonction, utilise : afficheEtudiants(prenoms, noms, matricules);
Non seulement c'est plus clair, et en plus ça évite de provoquer des warnings au compilateur. Ou alors il faut que tu castes avec un (char**). Mais ça alourdit bien le code.
Si en corrigeant, t'obtiens toujours les erreurs, merci de poster les déclarations des tableaux noms et prenoms.
Cdlt
Quand tu appelles ta fonction, utilise : afficheEtudiants(prenoms, noms, matricules);
Non seulement c'est plus clair, et en plus ça évite de provoquer des warnings au compilateur. Ou alors il faut que tu castes avec un (char**). Mais ça alourdit bien le code.
Si en corrigeant, t'obtiens toujours les erreurs, merci de poster les déclarations des tableaux noms et prenoms.
Cdlt