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 :

Taille d'un pointeur


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut Taille d'un pointeur
    Bonjour,

    pour connaitre la taille d'un pointeur, c'est bien

    je l'ai vu également écrit comme ça mais le résultat diffère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sizeof(p)/sizeof(int *);
    ou encore :

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 377
    Points
    20 377
    Par défaut
    Citation Envoyé par oranoutan
    Bonjour,

    pour connaitre la taille d'un pointeur, c'est bien
    Pourquoi veux-tu connaitre la taille d'un pointeur ?

    donne 4 ce qui est la bonne taille ( sous VC++ /Win XP)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sizeof(p)/sizeof(int *);
    donne 1 ce qui n'est pas la bonne taille

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Mat.M
    Pourquoi veux-tu connaitre la taille d'un pointeur ?
    Pour le fun

  4. #4
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Les paranthèses ne sont utiles que quand sizeof est utilisé avec un type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int *p = NULL;
     
    sizeof p
    ou
    sizeof (int *)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut
    bon à savoir.

    merci.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut
    arf, c'est encore moua.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      char *p;
     
      printf("%i\n", sizeof *p);
     
      p = malloc(50);
      if (p==NULL)
          puts ("pas bon");
     
      printf("%i\n", sizeof *p); // 1?
     
      free(p);
    j'aimerai voir la taille à l'adresse de 'p' avant et après l'allocation mais ça ne semble pas être comme ça.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 131
    Points : 114
    Points
    114
    Par défaut
    C est normal que ca donne 1

    p est un pointeur de caractere ... Et un caractere a comme taille 1 byte .... TADAAA

    Essaie de faire sur de le faire sur un pointeur d entier, tu devrais obtenir 4 (... Enfin tout depend du proc ...)

    PS : par contre si tu fais un sizeof sur un tableau statique, le resultat sera len * sizeof(n) (len etant la taille du tableau et n la taille de la donnée du tableau)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut
    oui 1 char -> 1 octet mais les 50 octets alloués dans l'espace de p comment on peut-on les retrouver ?

  9. #9
    Membre actif
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Points : 243
    Points
    243
    Par défaut
    Salut,

    Il n'est pas possible de récupérer la taille de l'espace alloué avec le pointeur.

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par oranoutan
    oui 1 char -> 1 octet mais les 50 octets alloués dans l'espace de p comment on peut-on les retrouver ?
    On ne peux pas. C'est à toi de t'en souvenir. Une structure permet justement d'organiser les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct tab_dyn
    {
       T *a;
       size_t size;
    };
    Pas de Wi-Fi à la maison : CPL

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

Discussions similaires

  1. Calcul de taille entre 2 pointeurs
    Par Fooshi dans le forum C
    Réponses: 6
    Dernier message: 12/05/2010, 12h22
  2. Réponses: 2
    Dernier message: 23/03/2010, 21h40
  3. Taille d'un pointeur de fonction (delegate)
    Par yocks dans le forum C#
    Réponses: 2
    Dernier message: 13/05/2009, 10h07
  4. Taille d'un pointeur NULL
    Par Bakura dans le forum C++
    Réponses: 28
    Dernier message: 03/03/2008, 02h51
  5. Taille d'un pointeur
    Par emprex dans le forum Débuter
    Réponses: 15
    Dernier message: 03/02/2008, 10h59

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