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

Ada Discussion :

Increment pointeur tableau


Sujet :

Ada

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2006
    Messages : 74
    Points : 48
    Points
    48
    Par défaut Increment pointeur tableau
    Bonjour,
    J'essaye de comprendre le fonctionnement des pointeurs en ada et je bloque sur les tableaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    with Ada.Text_IO, Ada.Integer_Text_IO ; 
    use Ada.Text_IO, Ada.Integer_Text_IO ; 
     
    procedure Test is
       Type T_Pointeur is access all integer ;
       Ptr : T_Pointeur ; 
       Type T_Tableau is array(0..5) of aliased integer ;
       MyTab : T_Tableau;
    begin
       MyTab(0) := 374 ;
       MyTab(1) := 320 ;
       Ptr := MyTab(0)'access ;
       Put(Ptr.all);
       Ptr:=Ptr+1;
       Put(Ptr.all);
    end Test ;
    Ce qui m'est interdit c'est l'incrément du pointeur. Ce que je veux essayer de faire c'est incrémenter le pointeur (donc l'adresse qui est pointée) pour accéder à la case suivante du tableau.
    Qu'est ce que je n'ai pas compris ?
    Merci

  2. #2
    Membre actif

    Homme Profil pro
    Mathématicien et développeur
    Inscrit en
    mars 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Mathématicien et développeur
    Secteur : Finance

    Informations forums :
    Inscription : mars 2012
    Messages : 129
    Points : 238
    Points
    238
    Billets dans le blog
    3
    Par défaut Arithmétique de pointeurs
    Les pointeurs (en Ada) sont prévus pour des cas assez particuliers: allocation dynamique, arbres spéciaux, communication avec le C.
    Il y a un paquetage Ada.* qui permet de faire de l'arithmétique de pointeurs (jamais utilisé). Est-ce que c'est le but de l'exercice?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2006
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    Bonjour, le but est de faire le lien avec ce que je connais des pointeurs. Si on alloue une zone mémoire d'un tableau, les items sont normalement consecutifs donc on doit pouvoir incrementer l'adresse du pointeur pour parcourir les cases. Mais apparemment non et je voulais savoir pourquoi ou ce que je n'avais pas compris.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2006
    Messages : 74
    Points : 48
    Points
    48
    Par défaut
    Ok en fait apparement un pointeur d'entier ou un pointeur d'element de tableau d'entier est différent. C'est pourquoi ça ne marche pas. Je regarde ton lien, merci

  5. #5
    Membre actif

    Homme Profil pro
    Mathématicien et développeur
    Inscrit en
    mars 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Mathématicien et développeur
    Secteur : Finance

    Informations forums :
    Inscription : mars 2012
    Messages : 129
    Points : 238
    Points
    238
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par touf26 Voir le message
    Bonjour, le but est de faire le lien avec ce que je connais des pointeurs. Si on alloue une zone mémoire d'un tableau, les items sont normalement consecutifs donc on doit pouvoir incrementer l'adresse du pointeur pour parcourir les cases. Mais apparemment non et je voulais savoir pourquoi ou ce que je n'avais pas compris.
    En effet le compilateur peut choisir l'alignement des éléments selon son efficacité.
    Pour parcourir les cases il faut utiliser un index. Cela permet au compilateur d'ajouter un test qui vérifie s'il y a débordement (impossible avec les pointeurs).
    Pour parcourir l'ensemble du tableau tu peux même utiliser la forme sans index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for element of my_array loop Do_Something (element); end loop;

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

Discussions similaires

  1. Pointeur tableau 2 dimensions
    Par rtg57 dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/05/2007, 19h30
  2. pointeur & tableau
    Par laurent933 dans le forum C
    Réponses: 10
    Dernier message: 10/04/2007, 00h56
  3. Pointeur, tableau et chaines de caractères.
    Par rouliane dans le forum C++
    Réponses: 8
    Dernier message: 19/12/2006, 20h27
  4. [Prob] classe + pointeur + tableau :x
    Par Saturnin123 dans le forum C++
    Réponses: 4
    Dernier message: 12/07/2006, 14h41
  5. Pb pointeur tableau struct
    Par difficiledetrouver1pseudo dans le forum C
    Réponses: 12
    Dernier message: 02/05/2006, 15h48

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