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 :

Petits problème de fonction et de pointeur


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Petits problème de fonction et de pointeur
    Bonjour,

    Voila, j'ai un petit soucis qui résiste à toutes mes tentatives pour le corriger. C'est du C, je suis un petit peu débutant, je code sous VS2005 (contre mon gré ...).

    Voici le code (simplifié, car tout ce qui est retiré est sans erreurs) :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    void lancer_inscription(Contact *tableau[], int *pros[], int *NUMC, int *NUMP, char *code)
    {
        //...
    }
     
    void main()
    {
        typedef struct
        {
            char *nom;
            char *prenom;
        } Contact;
     
        //...
     
        int NUMC, NUMP, pros[100];
        char code;
     
        //...
     
        Contact    tableau[100];
     
        //...
     
        lancer_inscription(&tableau, &pros, &NUMC, &NUMP, &code);
    }
    Alors, quand je cherche à "Générer", une erreur m'est renvoyée :
    1>c:\algo\projet\repertoire0.4.cpp(83) : error C2664: 'lancer_inscription' : impossible de convertir le paramètre 1 de 'Contact (*__w64 )[100]' en 'Contact *[]'
    1> Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
    Ce que je souhaitais, c'était transmettre le tableau des contacts en paramètre à ma fonction pour qu'elle m'en ajoute un ... Mais ca ne veut vraiment pas fonctionner, je ne comprends pas pourquoi, la syntaxe à l'air de correspondre à ce que j'ai dans mes cours.

    J'ai aussi relu la fac de C du site, et cours, les sources et qques tutoriels. JE ne vois toujours pas où est le problème. Merci de m'éclairer.

    Merci encore !

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Tu cherches à convertir un tableau de structures en tableau de pointeurs --> ça foire.

    Retire les deux premières étoiles de ta fonction lancer_inscription() et ça devrait mieux compiler...

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Ou bien, tu veux vraiment faire un pointeur vers tableau (plutôt qu'un tableau passé par adresse), et là, il faut déclarer ta fonction ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void lancer_inscription(Contact (*tableau)[100], int (*pros)[100], int *NUMC, int *NUMP, char *code)

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Salut,

    ma fonction est donc devenue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lancer_inscription(Contact (*tableau)[100], int (*pros)[100], int *NUMC, int *NUMP, char *code)
    Maintenant ca compile trop bien, et j'ai compris où est le soucis ! :p Depuis le temps que je planche là dessus ! J'espère qu'un jour je serai comme toi Médinoc, capable de voir des choses comme ça en deux secondes !



    Merci encore !

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

Discussions similaires

  1. problème de fonction avec des pointeurs
    Par bl4cksky dans le forum Débuter
    Réponses: 16
    Dernier message: 09/09/2013, 12h28
  2. Petit problème de fonction
    Par TheNikos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/05/2009, 17h53
  3. Réponses: 4
    Dernier message: 15/10/2006, 18h05
  4. Un petit problème de fonction
    Par philippef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/09/2006, 15h05
  5. [Mail] Petit problème de fonction
    Par cyrill.gremaud dans le forum Langage
    Réponses: 13
    Dernier message: 25/08/2006, 12h39

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