[C] Tableaux en 2D transmis en fonction

Résolu/Fermé
jcl571 Messages postés 36 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 août 2009 - 18 nov. 2008 à 21:56
jcl571 Messages postés 36 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 août 2009 - 18 nov. 2008 à 23:15
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!
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
18 nov. 2008 à 23:07
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
0
jcl571 Messages postés 36 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 12 août 2009
18 nov. 2008 à 23:15
Hmm, enlever les & et les [0][0] semble avoir enlevé les warning. C'était tout bête :P

Merci!
0