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 :

Déclaration d ’adresse


Sujet :

C

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Par défaut Déclaration d ’adresse
    Salut
    Je veux réaliser une fonction qui return l’adresse d’une case d’un tableau, le problème c’est que je sais pas comment je peux la déclarée

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 811
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dot-_-net Voir le message
    Salut
    Je veux réaliser une fonction qui return l’adresse d’une case d’un tableau, le problème c’est que je sais pas comment je peux la déclarée
    Ton tableau est de type "xxx" donc ta fonction qui renvoie l'adresse de ce type "xxx" est de type "xxx *" (puisqu'au bout de la valeur renvoyée on trouve un "xxx").

    Maintenant rappelle-toi bien que si ton tableau est défini dans la fonction en tant que "volatile", l'adresse que tu récupèreras au retour de la fonction n'aura aucune signification (puisque le tableau aura été détruit avec la fin de la fonction).
    Bien entendu si ton tableau arrive de l'extèrieur (comme paramètre) ou bien défini en "static" alors pas de pb
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  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
    Si tu as un tableau de type T, ta fonction doit retourner une valeur de type T*.
    on suppose une fonction retournant l'adresse de la case d'indice ind d'un tableau d'entiers
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int *my_fon(int *T, size_t ind)
    {
       return &T[ind];
    }
    "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 prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 811
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Si tu as un tableau de type T, ta fonction doit retourner une valeur de type T*.
    on suppose une fonction retournant l'adresse de la jième case d'un tableau d'entier
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int *my_fon(int *T, size_t ind)
    {
       return &T[ind];
    }
    Dommage, t'as utilisé "T" comme nom de type dans ton explication et comme nom de variable dans ton exemple => confuse it !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Par défaut
    Donc si on veut le contenu de cette cellule on fera :
    Int k=*my_fon(*T,ind)

  6. #6
    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
    Trop de vin blanc ce soir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int *my_fon(int *tab, size_t ind)
    {
       return &tab[ind];
    }
    non, on fera
    car *T donne le contenu de la première case du tableau T.
    "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

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 811
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dot-_-net Voir le message
    Donc si on veut le contenu de cette cellule on fera :
    Int k=*my_fon(*T,ind)
    C'est quoi "*T" ? C'est "ce qu'il y a à l'adresse T" autrement dit un "int". Or la fonction veut recevoir un "int étoile" et non un "int". Donc faut lui passer l'adresse de cet élément autrement dit "&*T" ou plus simplement "T".

    Citation Envoyé par Trap D Voir le message
    non, on fera
    car *T donne le contenu de la première case du tableau T.
    Et voilà.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par dot-_-net Voir le message
    Salut
    Je veux réaliser une fonction qui return l’adresse d’une case d’un tableau, le problème c’est que je sais pas comment je peux la déclarée
    Y'a pas besoin de fonction. L'opérateur '+' suffit :

    soit 'a' un tableau de 'T' :

Discussions similaires

  1. changer l'adresse d'un fichier...
    Par cava dans le forum C
    Réponses: 6
    Dernier message: 05/06/2002, 12h22
  2. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  3. Adresse des polices de caractères dans la RAM video ?
    Par Anonymous dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 27/05/2002, 17h29
  4. Réponses: 8
    Dernier message: 17/05/2002, 09h08

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