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 :

Passage en parametre d'un tableau


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Passage en parametre d'un tableau
    Bonjour a tous,

    Voila, j'essai de passer un tableau en parametre dans une fonction. le probleme c'est que ca ne marche pas ...

    Je vous donne un code simplifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    int main()
    {
        int ret;
        int array[10];
        ret = fun(array);
    }
     
    int fun (int **tab)
    {  
        tab[0] = 0;
        tab[1] = 1;
        tab[2] = 2;
        tab[3] = 3;
     
        return 1;
    }
    En fait j'aimerais affecter les valeurs 1,2,3 dans le tableau "array" mais ca ne marche pas ...

    Savez vous pourquoi ?

    Merci.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut Re: aide svp pour passage en parametre d'un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    int main()
    {
        int ret;
        int array[10]={0};
        ret = fun(array);
    }
     
    int fun (int *tab)
    {  
        tab[0] = 0;
        tab[1] = 1;
        tab[2] = 2;
        tab[3] = 3;
     
        return 1;
    }
    Essai cela.

    Je ne vois pas pourquoi tu as mis deux * ??? Tu aurais pu mettre deux etoiles si tu appelés la fonction de la sorte :

    array désigne déja une adresse ( adresse du premier élément du tableau) Si tu fais &array alors tu passerais en paramètre l'adresse où est stocké l'adresse du premier élément du tableau.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut merci ca marche
    merci

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: aide svp pour passage en parametre d'un tableau
    Citation Envoyé par hegros
    Je ne vois pas pourquoi tu as mis deux * ??? Tu aurais pu mettre deux etoiles si tu appelés la fonction de la sorte :

    A condition que array fût un pointeur, ce qui n'est pas le cas. (un pointeur n'est pas un tableau et inversement !)

    Le type de &array est int (*)[10] et non int **.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int main (void)
    {
       int array[10];
       int **pa = &array; /* main.c:4: warning: initialization from incompatible pointer type */
       int (*pb)[10] = &array;
     
       return 0;
    }

Discussions similaires

  1. passage par référence d'un tableau en parametre de fonction
    Par crazykangourou dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/01/2009, 14h30
  2. passage par parametre d'un double tableau
    Par nakac dans le forum C
    Réponses: 2
    Dernier message: 21/12/2008, 03h27
  3. Réponses: 11
    Dernier message: 27/06/2007, 15h06
  4. Réponses: 7
    Dernier message: 16/04/2007, 13h39
  5. 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