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 :

pointeurs / pointeurs sur fonctions / portée


Sujet :

C

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut pointeurs / pointeurs sur fonctions / portée
    Bonjour,

    Lors d'un entretien, j'ai eu un test en langage C et je n'ai pas su répondre aux questions suivantes :

    1) Comment est stockée une variable déclarée static dans la mémoire ?
    => je sais juste que static sert à garder une variable en mémoire de manière permanante, cad que même en dehors du bloc de déclaration de la variable, celle-ci n'est pas détruite. Ce qui se passe au niveau plus bas, dans les détails ( mémoire, stack ... etc) je ne sais pas ce qui se passe.

    2) Que fait cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void (*ptr)(int* (*)(int* tab[]), int**);
    => je sais que ptr est un pointeur sur une fonction qui renvoie un type void, En revanche le premier argument c'est du chinois pour moi ... plus précisément l'étoile que j'ai mis en rouge

    => Je sais aussi que y a un call back mais c'est un peu flou pour moi car le nom de la fonction n'apparait pas ( dans le premier argument de la fonction pointée par ptr ).
    Dans quel genre de situation on utilise ce genre d'expression ?

    3)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void *ptr;
    int d  = sizeof(ptr);
    d vaut combien ? ( et pourquoi ?)

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 373
    Points : 23 629
    Points
    23 629
    Par défaut
    Bonjour,

    Citation Envoyé par ikuzar Voir le message
    1) Comment est stockée une variable déclarée static dans la mémoire ?
    => je sais juste que static sert à garder une variable en mémoire de manière permanante, cad que même en dehors du bloc de déclaration de la variable, celle-ci n'est pas détruite. Ce qui se passe au niveau plus bas, dans les détails ( mémoire, stack ... etc) je ne sais pas ce qui se passe.
    En réalité, elle est gérée comme une globale.

    2) Que fait cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void (*ptr)(int* (*)(int* tab[]), int**);
    => je sais que ptr est un pointeur sur une fonction qui renvoie un type void, En revanche le premier argument c'est du chinois pour moi ... plus précisément l'étoile que j'ai mis en rouge
    Mais si, tu le sais :-)
    Le premier argument est lui-même est un pointeur de fonction. L'étoile se retrouve seule car tu ne nommes pas l'argument dans le prototype. C'est tout.

    3)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void *ptr;
    int d  = sizeof(ptr);
    d vaut combien ? ( et pourquoi ?)
    « d » contient la taille d'un pointeur, laquelle dépend de la machine sur laquelle tu tournes (donc 4 ou 8 sur les machines modernes).

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/02/2005, 13h09
  2. Réponses: 5
    Dernier message: 12/01/2005, 20h58
  3. pointeurs sur fonction en C++
    Par cemoi dans le forum C++
    Réponses: 7
    Dernier message: 29/11/2004, 13h19
  4. [langage] Pointeur sur fonction
    Par Fanch.g dans le forum Langage
    Réponses: 2
    Dernier message: 02/10/2004, 10h43
  5. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 19h37

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