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 :

pointeur de type structure


Sujet :

C

  1. #1
    Membre du Club Avatar de batoule80
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 53
    Points
    53
    Par défaut pointeur de type structure
    Bonjour,

    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
     
     struct  param                                 
                { 
                 int indexDebut;
                 int indexFin;
                 int tab[MAXTAB];
                 } arg;   
     
     
    pere= pthread_create (&thread, NULL, *fct, &arg);   
                        if (pere < 0)                                            
                                    {
                                     perror("Creation du thread"); 
                                     exit(EXIT_FAILURE); 
                                    }
    ma question : est ce juste de faire & arg ? en mettant (void *) arg il m'affiche : cannot convert to a pointer type
    une idée , merci de partager

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    La conversion implicite d'un pointeur sur struct param en void * est autorisée. Le cast explicite est toutefois quelque chose que je conseillerais ici à des fins de documentation. Ce qui me surprend, c'est l'expression *f. Comment est définit f?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void * (*f) (void *); /* ??? */
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  3. #3
    Expert éminent sénior
    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
    Points : 13 926
    Points
    13 926
    Par défaut
    ma question : est ce juste de faire & arg ? en mettant (void *) arg il m'affiche : cannot convert to a pointer type
    une idée , merci de partager
    Ecrire & arg, c'est prendre l'adresse de arg. Pour écrire cela, la seule contrainte est que arg soit un objet (par exemple, on ne peut pas écrire &1).

    Ecrire (void*) arg, c'est transformer l'adresse arg en un adresse void*. Cela impose que arg soit une adresse d'objet, pas un objet.

    Si arg est un objet (dans ton exemple c'est un struct param), on peut donc écrire &arg (valeur de type struct param *) et également (void*) &arg (valeur de type void *) mais pas (void*)arg puisque arg n'est pas une adresse.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/03/2013, 21h08
  2. Renvoyer un pointeur de type structure
    Par bluecurve dans le forum C
    Réponses: 2
    Dernier message: 18/05/2007, 20h29
  3. Renvoyer un type structuré dans objet OLE
    Par Bleuarff dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 13/05/2005, 20h05
  4. [LG]Liste de pointeurs de type pointer
    Par tom_snop dans le forum Langage
    Réponses: 4
    Dernier message: 29/03/2005, 23h40

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