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 :

Valeur retournée par sizeof


Sujet :

C

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 120
    Points : 109
    Points
    109
    Par défaut Valeur retournée par sizeof
    J'écris à partir d'un smartphone. Donc excusez du formatage
    Voici les deux cas:

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void tri(*tab)
    {
      printf("%ld\n", sizeof(tab));
    }
     
    Int main()
    {
     int tab[5]= {4,2,7,8,1};
    printf("%ld\n", sizeof (tab)); 
     tri(tab);
    return 0
    }

    La question est de savoir pourquoi les deux fonctions affichent différentes tailles pour le tableau.
    Le besoin est que je crée une fonction qui prend en paramètre un tableau sans sa taille.
    Donc dans la fonction, je veux récupérer la taille du tableau en utilisant sizeof. C'est à dire le nombre d'élément
    Mais là je remarque que je n'ai pas cela dans la fonction si ce n'est que dans le main(premier affichage)
    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 562
    Points : 7 628
    Points
    7 628
    Par défaut
    On ne peut pas passer un tableau en paramètre d'une fonction.
    La fonction ne peut que recevoir un pointeur, il est utilisable comme un tableau mais sa taille est irrémédiablement perdue comme tu peux le voir.
    Il n'y a pas d'autre solution que de transmettre la taille en un paramètre additionnel

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 120
    Points : 109
    Points
    109
    Par défaut
    Ok
    Merci.
    J'ai assez trimé dessus.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 120
    Points : 109
    Points
    109
    Par défaut
    Mettez résolu pour moi car à partir de mon smartphone cela n'est pas possible

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

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