[C] Tableaux en 2D transmis en fonction [Résolu/Fermé]

Signaler
Messages postés
36
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
12 août 2009
-
Messages postés
36
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
12 août 2009
-
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!

2 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 688
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
Messages postés
36
Date d'inscription
mardi 18 novembre 2008
Statut
Membre
Dernière intervention
12 août 2009

Hmm, enlever les & et les [0][0] semble avoir enlevé les warning. C'était tout bête :P

Merci!