Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Taille maximale d'un tableau
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Taille maximale d'un tableau

Posté le 08/02/2016 10:05

Hey, quelle est la taille maximale d'un tableau à deux dimensions en C sur calculatrice s'il-vous-plait ?

Merci


1, 2 Suivante
Ninestars Hors ligne Membre Points: 2449 Défis: 24 Message

Citer : Posté le 08/02/2016 10:19 | #


Pas de limite, à part la mémoire, mais tu as de la marge.
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 08/02/2016 10:20 | #


Donc un tableau de 12800 par 12800 y'aura assez de place ? Ou est-ce que je peux pousser jusqu'à 25600 par 25600 ?
Eltoredo Hors ligne Modérateur Points: 4299 Défis: 35 Message

Citer : Posté le 08/02/2016 10:20 | #


Tu peux largement pousser, ta mémoire est très grande tu sais ?
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 08/02/2016 10:21 | #


Je me croyais trop limité donc c'est bon je peux faire un grand truc merci les gars
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 08/02/2016 10:22 | #


12800 par 12800
omg c'est quoi qui prend autant de place?
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 08/02/2016 10:24 | #


Une map pas découpée en plusieurs tableaux
Ninestars Hors ligne Membre Points: 2449 Défis: 24 Message

Citer : Posté le 08/02/2016 12:07 | #


La question qu'il faut se poser c'est : Un tableau de quoi ? Parce que mettre des char, des int, ou des struct perso ça va changer la donne.

Tu as le droit à 9800 octets en RAM, c'est à dire une variable pas const, ni static.
Pour calculer la taille c'est : largeur x hauteur x sizeof(ce que tu as dans ton tableau)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 08/02/2016 12:29 | # | Fichier joint


Un tableau de int et si je lui donne comme taille 500*500, le compilateur build mais quand je lance le programme via l'émulateur, il m'affiche une erreur (pièce jointe)

Je vais voir ça merci
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 08/02/2016 12:33 | #


500*500*4 = 1000000 >> 9800
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 08/02/2016 12:35 | #


Ah mince

Ajouté le 08/02/2016 à 12:37 :
Mais j'aurais une map ridiculement petite ><
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 08/02/2016 12:38 | #


Tu dois avoir du mal à t'organiser
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 08/02/2016 13:19 | #


Non c'est juste que je m'imaginais un truc en une seule map assez énorme, 1 case du tableau équivaut à un bloc de 4*4 pixels à l'écran donc en deux écrans j'ai fait le tour de la map
Je vais donc faire une sorte de tile mapping chelou
Dark storm En ligne Labélisateur Points: 11549 Défis: 176 Message

Citer : Posté le 08/02/2016 17:28 | #


Mais quel est l'intérêt de stocker tout ça dans des int ? Un char surffit largement, avec ça tu peux aller à 255 blocs (+ 1 pour le vide). Déjà tu divise la taille par 4.

Ensuite, tu ferai mieux de la charger au fur et à mesure plutôt que tout d'un coup. En comparaison, les maps que j'avais commencé pour Arcuz faisaient 32*32, donc avec des tiles de 16*16, ça te fait une map de 512 pixels de haut.
Tu combines ça avec des changements de map grâce à des events, et tu peux facilement dépasser le 5120 pixels de map.
Ce qui est déjà énorme (à 10px/s de déplacement, il te faut 512" = 8'32" pour traverser la map, et ce juste dans un sens. Donc pour peu que t'ai un bon scénario, ça devrait aller non ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 08/02/2016 18:07 | #


Je ne comprends pas bien, un tableau de char peut aller jusqu'à 255*255 max ?

Oui je veux bien faire une génération procédurale mais je ne sais pas comment stocker en mémoire ce qui à déjà été chargé

Ca serait génial si je savais faire ce que tu me dis
-florian66- Hors ligne Ancien rédacteur Points: 2370 Défis: 20 Message

Citer : Posté le 08/02/2016 18:14 | #


Non un tableau de char ne prend que 1 octet par case alors qu'un tableau d'int en prend 4 octets !

Donc le tableau de char est 4 fois plus petit qu'un tableau d'int de la même taille
In Arch, I trust ! And you ?
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 08/02/2016 18:18 | #


Ca j'avais compris
Mais comment ça se fait que je pouvais faire un tableau de int de 100*50 ?
100*50*4 = 20000
Epicmario Hors ligne Membre Points: 72 Défis: 0 Message

Citer : Posté le 08/02/2016 20:00 | #


Techniquement, il me semble que y'a pas réellement de limite au niveau de la taille du tableau, ça va surtout être si t'es en out of memory ou pas. Mais bon t'es sur une calculatrice, alors je pense que les mecs vont mettre des restrictions absolues pas trop faibles sur la taille max de certaines données. A vrai dire, je pense que sur du C et vu que c'est le turfu total, tu as moyen de subdiviser ton grand tableau en plusieurs plus petits (un peu comme des chucks sur MC) et de les charger de manière dynamique. Après je sais pas ce que tu vas mettre dedans, mais si c'est une map géante de ouf malade, à ta place j'aurais fait en sorte qu'il charge tous les autres morceau de tableau autour du morceau de tableau sur lequel tu es trouves actuellement (9x9 en permanence du coup). De plus, je pense que contrairement au BASIC où il est nécessaire de tout charger dès le début, là ta calculatrice peut processer sans rendre le tout injouable (au passage je me demande ce que tu ferais de dimensions aussi dingues et ça commence un peu à m’impressionner, comprendra qui pourra x)

Après, tu restes assez vague sur l'utilisation mais c'est ça que j'aurais fait vu que je vois pas trop l'intérêt d'avoir autant de données chargées en même temps
~Geek incompris ayant trouvé refuge sur l'Internet~
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 08/02/2016 20:28 | #


On est très vite out of memory

C'est ce que je voulais éviter au départ, plusieurs tableaux :oops:. Mais je n'ai pas le choix alors c'est surement ce que je vais faire. Mais comme mon monde est généré aléatoirement je veux sauvegarder les "chunks" quand ils ne sont pas chargés dans la matrice et ça va forcément prendre de la place

L'utilité de la dimension ? Juste créer une planète
Epicmario Hors ligne Membre Points: 72 Défis: 0 Message

Citer : Posté le 08/02/2016 20:40 | #


La vache, c'est intéressant comme concept :o Là, j'avoue que je vais avoir du mal à t'aider, mais en tout cas ça a du potentiel, faudrait que tu trouves le moyen de pouvoir compiler le fragment de map lors du moment où tu vas le décharger, ça va pas être facile mais ça doit se faire Du coup, je comprends l'intérêt de la map géante, mais ça doit pouvoir être contourné à mon humble avis Bon courage xD
~Geek incompris ayant trouvé refuge sur l'Internet~
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 09/02/2016 10:38 | #


J'étais justement en train de bosser dessus et je pense possiblement avoir trouvé, après, reste à voir si ça tient dans 255 caractères
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 81 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd