IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Fonctions et tableaux à deux dimensions


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de mailbox
    Profil pro
    Inscrit en
    Février 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 140
    Par défaut Fonctions et tableaux à deux dimensions
    Bonjour, j'ai mon main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void main()
    {
    	char chaine[128][128];
     
    	fonction(chaine);
     
    	for (i=0; i<=10; i++)
    		printf("%s", chaine[i]);
    }
    Et la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    char fonction(char **chaine)
    {
    	//...blabla...
     
    return **chaine;
    }
    Donc je déclare un tableau à deux dimensions dans mon main, je le modifie dans la fonction et j'aimerai afficher le contenu du tableau dans le main. Seulement j'obtiens :
    <null>
    <null>
    <null>
    <null>
    <null>

    A l'intérieur de ma fonction je remplis le tableau comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(chaine[4], "%s h %s", date.heure, date.minute);
    Si quelqu'un peut me corriger

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Le compilateur a dû émettre un avertissement ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void main()
    {
    	char chaine[128][128];
    	fonction(chaine);
    ....
    pour une incompatibilité de paramètres avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char fonction(char **chaine)
    chaine n'est pas un char** : un paramètre char ** correspond à un tableau (1D) de pointeurs sur char, pas à un tableau 2D de char.
    Le paramètre doit être du type "adresse d'un élément du tableau". Le tableau chaine a pour éléments des tableaux char [128], donc le paramètre doit être "adresse d'un tableau de 128 char" : char(*)[128] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char fonction(char (*chaine)[128])
    ou si on préfère l'équivalent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char fonction(char chaine[][128])
    (la mise entre parenthèses de *chaine et la mention 128 sont obligatoires)

  3. #3
    Membre confirmé Avatar de mailbox
    Profil pro
    Inscrit en
    Février 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 140
    Par défaut
    Merci diogene, tout refonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. decalaration dynamique tableaux deux dimensions et TRI
    Par Alex35 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/12/2007, 13h48
  2. [Problème]Tableaux deux dimensions
    Par maloute80 dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2007, 14h31
  3. [Tableaux] Gerer des tableaux à deux dimensions
    Par FrankOVD dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 15h20
  4. Réponses: 13
    Dernier message: 13/10/2005, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo