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 :

Structure et fonction


Sujet :

C

  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut Structure et fonction
    Bonjour tout le monde.
    J'ai un soucis avec les structures.
    Je voudrais passer l'adresse d'une structure à une fonction, et m'en servir à l'intérieur de la fonction, tout comme on passe un tableau.
    J'ai écris ça (mb est ma structure) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int mb_test(int *p_mb) {
    <div style="margin-left:40px">p_mb.var1 = 100;
    return 1;</div>}
    Le code n'a absolument aucune utilité, c'est un exemple, pour montrer ce que je veux faire.
    L'idée, bien entendu, c'est qu'au retour de la fonction, la valeur du champ var1 dans ma structure soit 100.

    Je passe la structure directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retour_struct = mb_test(mb);
    Le compilateur me dit :
    error: request for member `var1' in something not a structure or union
    Où est mon erreur ?
    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par progfou
    Le compilateur me dit :
    error: request for member `var1' in something not a structure or union
    Normal, tu passe par un pointeur donc il faut faire de la sorte pour accèder aux membres de la structure:
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    D'après ta déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int mb_test(int *p_mb) {p_mb.var1 = 100;
    return 1;}
    p_mb est un pointeur vers un entier pas vers une structure.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Edit: Merci !
    Tellement évident !

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par progfou
    Je passe la structure directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retour_struct = mb_test(mb);
    mb est déjà un pointeur sur une structure ? Car dans ce cas en générale moi je passe l'adresse du pointeur quand les changement doivent être répercutés même après la fin de la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retour_struct = mb_test(& mb);
    puis pour l'accès je fait ainsi:
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    HRS
    HRS est déconnecté
    Membre chevronné
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par défaut
    essayez cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int mb_test(ma_structure *p_mb) {
     
        p_mb->var1 = 100; return 1;
     
    }

  7. #7
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Trap D
    D'après ta déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int mb_test(int *p_mb) {p_mb.var1 = 100;
    return 1;}
    p_mb est un pointeur vers un entier pas vers une structure.
    Chuis null ... j'ai même pas vu ca
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  8. #8
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Citation Envoyé par Franck.H
    Chuis null ... j'ai même pas vu ca
    T'es pas le premier (ni le dernier) à qui ça arrivera
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

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

Discussions similaires

  1. Probléme structure pointeur fonction
    Par babouoles dans le forum Bibliothèque standard
    Réponses: 9
    Dernier message: 14/05/2008, 17h34
  2. Probleme avec structures et fonctions
    Par isaac727 dans le forum Débuter
    Réponses: 2
    Dernier message: 31/03/2008, 23h01
  3. Passage d'une structure en fonction
    Par god_enel dans le forum C
    Réponses: 11
    Dernier message: 15/04/2007, 20h55
  4. structures et fonctions
    Par olivier1209 dans le forum C
    Réponses: 11
    Dernier message: 10/12/2006, 14h53
  5. structures et fonctions
    Par kendras dans le forum C
    Réponses: 15
    Dernier message: 14/06/2006, 15h57

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