Tableau

Signaler
Messages postés
5
Date d'inscription
samedi 12 mai 2007
Statut
Membre
Dernière intervention
30 septembre 2007
-
Messages postés
5
Date d'inscription
samedi 12 mai 2007
Statut
Membre
Dernière intervention
30 septembre 2007
-
bonjour a tous,

dans un programe, j'ai besoin de deux fonctions:

- la première; «getvaleur» qui se chargera de recuperer le contenu d'une variable (structure) bien définit et de les mettre dans 2 tableaux statiques (MAX est préalablement définit)
- la deuxieme aura besoin de la première

void getvaleur(Sommet S, char nom*[MAX], char *prenom[MAX])
{
*nom=S.nom;
*prenom=S.prenom;
}
ensuite, je l'appelle dans la 2ime fonction
int fonction (Sommet leSom, ...)
{...
char leNom[MAX];
char lePrenom[MAX];

getsommet(leSom , &lenom, &lePrenom);

...
return 0;
}

mais ça ne marche pas. quel est le problème? comment faire pour que «leNom» et« lePrenom» de la 2ieme fonction reçoivent le contenu de la variable «leSom»?

merci d'avance.

3 réponses

Messages postés
793
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
10 février 2021
8
A ce que vois tu passes char** et non char* dans ta fonction , qui je suppose est dans getsommet

louis14
Messages postés
115
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
19 décembre 2008
1
Salut,


Modifies ta fonction getvaleur :

void getvaleur(Sommet S, char *nom, char *prenom)
{
   strcpy(nom, S.nom);
   strcpy(prenom,S.prenom);
}

Le nom d'un tableau, correspond à l'adresse du premier élément du tableau, dc à un pointeur sur la tableau, dans ta fonction getvaleur tu veux juste préciser les adresses auquelles se trouvent tes deux tableau, c'est pourquoi il ne faut pas avoir char nom*[MAX], char *prenom[MAX] comme paramètres.

De plus pour récupérer les valeurs :
getsommet(leSom , lenom, lePrenom);

Pas besoin de '&' puisque lenom et lePrenom sont deja des adresses (adresse du premier élément -> pointeur sur un tableau)

-{ Saifer }-
Messages postés
5
Date d'inscription
samedi 12 mai 2007
Statut
Membre
Dernière intervention
30 septembre 2007

merci. je vois clair maintenant et ça marche!!