Taille maximal d'un tableau pour une mémoire de 2048 octets
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Taille maximal d'un tableau pour une mémoire de 2048 octets



  1. #1
    invite8c013b57

    Taille maximal d'un tableau pour une mémoire de 2048 octets


    ------

    Bonjour,
    J'aimerai savoir comment calculer la taille maximale que je peux attribuer à un tableau en ayant une mémoire SRAM de 2048 octets. Il faudrait calcul le nombre d'octet qu'utilise chaque ligne d'un tableau du type int.

    Merci d'avance.

    -----

  2. #2
    Dlzlogic

    Re : Taille maximal d'un tableau pour une mémoire de 2048 octets

    Bonjour,
    Ca dépend de la taille des int.
    Dans beaucoup de langages un int est sur 32 bits, soit 4 octets.
    Il existe aussi des short int sur 16 bits. (2 octets)
    Y'a plus qu'à faire la division.

  3. #3
    invite8c013b57

    Re : Taille maximal d'un tableau pour une mémoire de 2048 octets

    Je programme en C.

    Donc si un int est sur 32 bits, pour 2048 octets de stockage ça fait 512 lignes maximum dans un tableau. Avec les autres variables que j'utilise il faut que je définissent un plus petit.

    Merci

  4. #4
    invite8c013b57

    Re : Taille maximal d'un tableau pour une mémoire de 2048 octets

    Je viens de penser que j'utilise un CPU 8bit (AVR), cela change quelque chose ?

  5. A voir en vidéo sur Futura
  6. #5
    Dlzlogic

    Re : Taille maximal d'un tableau pour une mémoire de 2048 octets

    Je pense que oui, les int sont probablement sut 16 bits et non 32.
    Un test simple, vous faites un unigned int a = 0; , puis a--;
    a devrait valoir 65534.
    ou alors a= 65535; puis a++, le résultat doit être 0.

  7. #6
    invite8c013b57

    Re : Taille maximal d'un tableau pour une mémoire de 2048 octets

    J'ai bien trouvé 65534 !
    Donc int sur 16bits, 2 octets.
    Merci

  8. #7
    invite936c567e

    Re : Taille maximal d'un tableau pour une mémoire de 2048 octets

    Bonsoir

    Le meilleur moyen de connaître la taille d'un int (et plus généralement d'un type de taille fixe), c'est encore d'utiliser sizeof(...).

    Dans ton cas, tu obtiendras certainement sizeof(int)=2 octets. Toutefois, cela pourrait changer si par la suite tu utilisais une autre plateforme, un autre compilateur, ou d'autres options de compilation.


    Mais attention, cette taille ne détermine pas directement le nombre d'éléments qu'une mémoire peut contenir. En effet, ce n'est pas le seul paramètre à prendre en compte.

    Si la mémoire SRAM dont tu parles constitue la mémoire de travail principale de ton système, alors elle est très certainement déjà organiosée pour accueillir des structures propres au langage C, telles que les données globales et statiques (data), les données non initialisées (bss), le tas (heap) et la pile (stack). La présence de ces différentes structures consomme ou réserve un certain volume de mémoire, qu'il faudra soustraire à la taille de la SRAM pour déterminer la taille réellement disponible pour ton tableau.

    Dans certains cas de figure, il faut également prendre en compte des questions de granularité, qui peuvent provoquer une perte de place du fait d'un alignement des données stockées sur des adresses non multiples de la taille des éléments. Mais s'agissant d'un tableau de int en SRAM, le problème ne devrait pas se poser ici.

Discussions similaires

  1. Taille maximal d'une planète rocheuse
    Par invitef512b969 dans le forum Archives
    Réponses: 1
    Dernier message: 18/07/2012, 03h06
  2. ReadI2C() - Retourne 2 octets d'un coup
    Par invitebf0c0d36 dans le forum Électronique
    Réponses: 5
    Dernier message: 19/04/2012, 18h05
  3. Taille d'un ipn pour une terrasse
    Par invited206c1fa dans le forum Physique
    Réponses: 2
    Dernier message: 23/01/2012, 06h10
  4. Taille maximal d'une planète tellurique ?
    Par invite82936bcc dans le forum Planètes et Exobiologie
    Réponses: 29
    Dernier message: 09/05/2009, 21h56
  5. Réponses: 21
    Dernier message: 28/06/2008, 22h17