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 :

Pb de débutant sur les pointeurs!!!


Sujet :

C

  1. #1
    Membre régulier
    Inscrit en
    Juin 2003
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 82
    Points : 92
    Points
    92
    Par défaut Pb de débutant sur les pointeurs!!!
    bon jour tout le monde l'apprentissage du c et des pointeurs et assez difficile si j'ai bien compris le principe la pratique en est autrement.

    si vous pouviez m'aider ça me saurez très utile :

    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
    28
    29
    30
    31
    #include <iostream.h>
    #include <stdio.h>
     
    // declaration de la structure produit
     
    typedef struct
    {
    	char *sRef;
    	char *sLib;
    	float fPrixHT;
    }produit;
     
    //prototype des fonctions
    void  Init(produit*);
     
     
    //fonction main
    void main()
    {	
    	produit tProd[100];
     
    	//initialisation du tableau
    	Init(tProd);
    	cout<<tProd[1].sRef;
    }
     
     
    void Init(produit *tProd[100])
    {
     
    }
    ça compile 0 errors 0 warnings mais dans le build erreur que je n'arrive pas à comprendre.
    L'erreur est dans l'appel à la fonction INit.
    Merci pour votre aide.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Points : 253
    Points
    253
    Par défaut
    c'est tout a fait normal ton prototype de Init ne correspond pas à la déclaration que tu en fais:
    Il faudrait savoir ce que tu veux faire mais a priori
    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
    28
    29
    30
     
    #include <stdio.h> 
     
    // declaration de la structure produit 
     
    typedef struct 
    { 
       char *sRef; 
       char *sLib; 
       float fPrixHT; 
    }produit; 
     
    //prototype des fonctions 
    void  Init(produit[]); 
     
     
    //fonction main 
    int
    main() 
    {    
       produit tProd[100]; 
     
       //initialisation du tableau 
       Init(tProd); 
       printf("%s\n",tProd[1].sRef); 
       return 0;
    } 
     
     
    void Init(produit tProd[100]){}
    Je verrais plus un truc dans ce genre.
    Ton erreur provient du fait que lorsque tu définis le prototype tu indiques que la fonction Init recoit un pointeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void  Init(produit*);
    et lors de ta déclaration tu indiques que Init prend pour paramètre un tableau de pointeurs ce qui est différent. Bref, ton prototype ne correspond pas a ta déclaration, tu peux aussi faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    void Init(produit*);
    void Init(produit tab[100]){}
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    void Init(produit*);
    void Init(produit *tab){}
    ou encore si tu veux faire un tableau de pointeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    void Init(produit**);
    void Init(produit *tab[100]){}
    Sur ce a bientot, et bon courage avec les pointeurs !
    TOUT CE QUI EST VRAISEMBLABLE N'EST PAS FORCEMENT VRAI . MEFIEZ VOUS

  3. #3
    Membre régulier
    Inscrit en
    Juin 2003
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 82
    Points : 92
    Points
    92
    Par défaut
    J'ai mis la fonction main à la fin comme ça plus de pb de prototypes.

    apparement ça marche.

    Encore merci je vous tiens au courant si j'ai d'autres pb.

    @+++

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut
    à koi correspond produit* et produit** ? c une autre manière de déclarer un pointeur (*) et un tableau de pointeur (**) ??

  5. #5
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 337
    Points : 130 272
    Points
    130 272
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par drKzs
    à koi correspond produit* et produit** ? c une autre manière de déclarer un pointeur (*) et un tableau de pointeur (**) ??
    Quand tu déclares une fonction (mais pas quand tu la définis), tu n'es pas obligé de mettre le nom des paramètres.

    Exemple :
    void fonction(int, char*, double);

    Là je déclare que ma fonction prend un entier, une chaîne et un flottant en paramètres. Comme je n'écris pas le code, le nom des paramètres n'est pas important et je peux donc les omettre. Par contre ils doivent absolument être mis quand la fonction est définie.
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut
    ok.... merci.

    et quel est l'avantage d'utiliser les prototype, je crois que c ça le nom.... c juste une question de présentation de définir les fonctions aux apres la fonction main ?

  7. #7
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par Anomaly
    Quand tu déclares une fonction (mais pas quand tu la définis), tu n'es pas obligé de mettre le nom des paramètres.
    Salut
    Mon problème avec les fonctions se niche ici alors je me permets de reprendre ce thread.
    Voilà souvent lorsque je définis une fonction pour faire une tâche quelqu'elle soit en fait cette fonction devient le programme
    C'est comme si je n'avais pas de fonction donc je suis assez embarrassé et je me demande comment définir correctement des fonctions afin qu'elles puissent être réutilisables dans de saines conditions?
    ++

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 15/10/2006, 16h52
  2. Question sur les pointeurs.
    Par Chrisemi dans le forum C++
    Réponses: 5
    Dernier message: 28/10/2005, 23h47
  3. Dev c++ en rade sur les pointeurs ?...
    Par Magicien d'Oz dans le forum C
    Réponses: 17
    Dernier message: 13/10/2005, 19h38
  4. questions sur les pointeurs
    Par Hyoga dans le forum C++
    Réponses: 17
    Dernier message: 08/01/2005, 23h25
  5. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51

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