Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher les adresses d'un tableau

Afficher les adresses d'un tableau

Sujet résolu
    26 mai 2019 à 10:25:27

    Bonjour à tous,

    Alors voila, je débute en C et je viens d'arriver au cours sur les tableaux.

    J'ai pris un exemple donné dans le cours qui nous montrait comment afficher toutes les variables d'un tableau et je l'ai un peu modifié.
    Je m'étais dit que puisque dans un tableau, les adresse devaient se suivre, si au lieu d'afficher la valeur des variables, je choisissais d'afficher leurs adresse, je devais avoir des nombre qui se suivent. Voici mon code : 

    int main(int argc, char *argv[])
    {
        int tableau[4] = {10, 15, 3};
    
        printf("%d\n", &tableau[0]);
        printf("%d\n", &tableau[1]);
        printf("%d\n", &tableau[2]);
        printf("%d\n", &tableau[3]);
    
        return 0;
    }
    


    Sauf que ma console ne me donne pas des nombres qui se suivent mais saute de 4 en 4 : 

    résultat

    Pouvez-vous m'expliquer ce qui s'est passé svp ?

    • Partager sur Facebook
    • Partager sur Twitter
      26 mai 2019 à 10:54:31

      Hello,

      Quelle est la taille d'un entier ? 

      Cordialement.
      • Partager sur Facebook
      • Partager sur Twitter
        26 mai 2019 à 14:10:20

        Bonjour,

        Je n'ai pas compris votre question.

        Qu'entendez vous par la taille d'un entier ?

        • Partager sur Facebook
        • Partager sur Twitter
          26 mai 2019 à 14:15:50

          Le nombre d'octets pour représenter un entier 

          • Partager sur Facebook
          • Partager sur Twitter
            26 mai 2019 à 15:50:06

            Fais le même tableau avec un type char en plus du int et affiche ceci.

            printf("%d", sizeof(int));
            printf("%d", sizeof(char));

            -
            Edité par aneonymous 26 mai 2019 à 15:59:02

            • Partager sur Facebook
            • Partager sur Twitter
              26 mai 2019 à 17:23:57

              Vous voulez dire qu'un int prend 4 places en mémoire, et que donc les adresse se suivent bien ?
              • Partager sur Facebook
              • Partager sur Twitter
                26 mai 2019 à 18:07:56

                Oui, l'unité de mémoire la plus petite étant 1 octet, les adresses s'incrémentent donc pour chaque octet afin de décrire toute la mémoire
                Un int faisant 4 octets (ici), tu te déplaces donc de 4 "adresses" pour chaque entier.

                -
                Edité par aneonymous 26 mai 2019 à 18:23:47

                • Partager sur Facebook
                • Partager sur Twitter
                  26 mai 2019 à 18:20:35

                  Sans oublier que la taille d'un int n'est pas forcement de 4 octets, (la taille d'un entier dépend du compilateur).
                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 mai 2019 à 18:32:32

                    ok merci pour ces explications.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Afficher les adresses d'un tableau

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown