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

Fortran Discussion :

l'attribut pointeur en fortran


Sujet :

Fortran

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 36
    Points
    36
    Par défaut l'attribut pointeur en fortran
    bonjour
    j'ai de probleme avec l'attribut pointeur.
    Qu'est ce que un pointeur et a quoi sert?
    comment le declarer et comment l'utilier?
    quelle est la difference entre une variable ordinaire et une autre declarer avec pointeur?
    merci pour vos aides

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Juste pour être certain qu'on se comprenne bien, il y a 3 types de pointeur en Fortran :
    • Les vrais pointeurs Fortran
    • Les pointeurs « C » de Fortran 2003
    • Les pointeurs Cray rarement utilisés.

    Je vais supposer que tu fais référence aux premiers.

    Ils sont toujours (?) implantés par des types contenant l'adresse mémoire, le nombre de dimensions de l'objet, le nombre de lignes, de colonnes, ...

    Une particularité des pointeur Fortran (par rapport à du C) est qu'on ne peut pas avoir de vecteur de pointeur. real, pointer :: Ptr(:) signifie pointeur à un vecteur, et non vecteur de pointeur (il faut vecteur d'un type contenant un pointeur pour émuler un vecteur de pointeur). On les déclare comme suit :

    « type », pointer, dimension(:,:...) :: Ptr ou
    « type », pointer :: Ptr(:,:...) ou
    « type », pointer :: Ptr

    par exemple :

    real, pointer :: Ptr(:)

    Ils sont assez près des allocatables. Tu peux faire un allocate sur un pointeur, mais il n'y a pas de deallocate automatique quand l'exécution sort du sous-programme où se trouve le pointeur. En Fortran 90 et 95, ils étaient très utilisés dans les types parce que les types ne pouvaient pas avoir de membres allocatables (permis depuis TRxxxxx - extension à F95 intégrée à F03).

    Tu peux aussi faire pointer un pointeur sur une variable ou un autre pointeur.

    Pointeur => Variable
    Pointeur => Tableau

    Lorsque le pointeur est associé à (pointe sur) un tableau, il ne pointe pas sur une case comme en C, mais sur toute la région associé :

    Ptr => Tableau(2:4, 1:5)

    Tu dois donc utiliser des indices pour référer à une case précise :

    abc = Ptr(2,3), soit Tableau(3,3)

    Pour pointer sur une variable, la variable doit cependant avoir l'attribut target (pour des raisons d'optimisation).

    Le pointeur à pointeur est très utile pour gérer des listes liées, des arbres, ...

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/06/2012, 21h49
  2. Problème d'accession d'un attribut pointeur protégé
    Par spawn385 dans le forum Débuter
    Réponses: 6
    Dernier message: 14/12/2011, 21h00
  3. Réponses: 4
    Dernier message: 18/04/2008, 17h45
  4. Réponses: 1
    Dernier message: 18/04/2008, 17h16
  5. Réponses: 3
    Dernier message: 20/09/2005, 08h59

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