Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » J'aimerai vraiment m'améliorer... (139 réponse(s))
./REPRISE DU POST PRECEDENT (post n°76)   Marquer comme non lu.
FpgForce Ecrit le: Mardi 11 avril 2006 à 12:14 Déconnecté(e)    Voir le profil de FpgForce Envoyer un email à FpgForce Envoyer un message privé à FpgForce  

ouep, mais tu veux un bitfield, tu vas aussi faire un malloc, et tu peux définir un tableau en dur dans ton code sans malloc :p
Bah oui et ? ça ne change pas le fait que la mémoire est le plus souvent représentée en C par le formalisme tableau donc tu ne peux pas dire que ça n'a rien à voir.
    
./Post n°77   Marquer comme non lu.
Folco Ecrit le: Mardi 11 avril 2006 à 12:17 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


pas _rien_. effectivement. mais je voulais montrer que ça peut servir à de pultiples autres choses. :)
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°78   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 11 avril 2006 à 14:23 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


On peut redimensionner avec realloc, mais le mieux est de travailler avec les fonctions qui travaillent sur des handles (HeapAlloc, HeapDeref, HeapRealloc, HeapFree etc.). realloc sur TI est un hack.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°79   Marquer comme non lu.
Folco Ecrit le: Mardi 11 avril 2006 à 14:53 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


sinon, .word 0xf200+x (avec 0x02<x<0x04) fait tout, avec mclib installé. #oui#

#dehors, loin, loin, loin...#
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°80   Marquer comme non lu.
Kroma Ecrit le: Mercredi 12 avril 2006 à 05:47 Déconnecté(e)    Voir le profil de Kroma Envoyer un email à Kroma Visiter le site WEB de Kroma Envoyer un message privé à Kroma  

Qu'est ce qu'un Handle ???
#idea# SHIP TOURNAMENT 2006 -> 5% #idea#
    
./Post n°81   Marquer comme non lu.
Folco Ecrit le: Mercredi 12 avril 2006 à 08:29 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


un handle est le numéro d'une zone de mémoire allouée (en mémoire vive ou archive, qu'importe)

Doc:
HeapAlloc, HeapRealloc, HeapAllocHigh renvoient des handles
HeapAllocPtr renvoie un pointeur
HeapDeref renvoie un pointeur à partir d'un handle.
Regarde tout ça. :)
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°82   Marquer comme non lu.
Onur Ecrit le: Mercredi 12 avril 2006 à 16:49 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


Jfg :
Souvent, on connait la taille maximum de son tableau donc il suffit d'allouer toute la mémoire dès le début. Tu peux pas faire ça toi ?


le maximum oui.. on peut meme parfois majorer la taille :D
malloc(60000);         //©jf


source
-Edité le Mercredi 12 avril 2006 à 16:50 par Onur-
-Edité le Mercredi 12 avril 2006 à 16:51 par Onur-
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°83   Marquer comme non lu.
Jfg Ecrit le: Mercredi 12 avril 2006 à 18:13 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


ben... #rougir#
Très bon exemple :D
Kill Mario
    
./Post n°84   Marquer comme non lu.
Jfg Ecrit le: Mercredi 12 avril 2006 à 18:23 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Plus sérieusement, il y a un bon exemple d'allocation massive avant le début du jeu sur la page qu'a donné Onur:

malloc(M_MAP_SIZE +
sizeof(STALAG_STRUCT)*MAX_NUMBER_OF_STALAG+
sizeof(COIN_STRUCT)*MAX_NUMBER_OF_COIN+
sizeof(COLLISION_ENNEMI)*NUMBER_OF_LINES+
sizeof(ANIMATION_STRUCT)*MAX_ANIM+
sizeof(SCORE_ANIMATION_STRUCT)*MAX_ANIM+
sizeof(ENNEMI_STRUCT**)*MAX_NUMBER_OF_ENNEMIE_TO_BE_INIT+
sizeof(DEAD_ENNEMI_ANIMATION_STRUCT)*MAX_DEAD_ANIM+
sizeof(EXPLODING_ICEMEN_STRUCT)*MAX_EXPLODING_ICEMEN+
sizeof(FREEZE_GROUND_STRUCT)*MAX_NUMBER_OF_FREEZE_G);


Avec ça, ya zéro allocation à faire quand on joue.

Vous avez des exemples où c'est nécessaire de faire des allocations au milieu du jeu?
Kill Mario
    
./Post n°85   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 13 avril 2006 à 01:29 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Bah, quand tes MAX_* ne sont pas fixés.
Et sinon, pourquoi 60000 et pas carrément 65518? ;)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°86   Marquer comme non lu.
Folco Ecrit le: Jeudi 13 avril 2006 à 08:32 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


c'est pas 65520 le max allouable?
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°87   Marquer comme non lu.
geogeo Ecrit le: Jeudi 13 avril 2006 à 10:43 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Vous êtes tous des barbares. ^^
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°88   Marquer comme non lu.
Folco Ecrit le: Jeudi 13 avril 2006 à 11:08 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Nan pas moi! :p
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°89   Marquer comme non lu.
LionelA Ecrit le: Jeudi 13 avril 2006 à 13:01 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


le numero de handle prend 2 octets et il est rajouté a la zone mallockée je crois, donc malloc(65518) c'est le max
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°90   Marquer comme non lu.
Folco Ecrit le: Jeudi 13 avril 2006 à 13:48 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


deux octets avant l'adresse renvoyé??? pas sûr... en tout cas, procéder comme ça pour le retrouver (cf realloc #couic#), c'est un hack...
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°91   Marquer comme non lu.
Pollux Ecrit le: Jeudi 13 avril 2006 à 15:06 Déconnecté(e)    Voir le profil de Pollux Envoyer un email à Pollux Envoyer un message privé à Pollux  

Jfg :
Plus sérieusement, il y a un bon exemple d'allocation massive avant le début du jeu sur la page qu'a donné Onur:

malloc(M_MAP_SIZE +
sizeof(STALAG_STRUCT)*MAX_NUMBER_OF_STALAG+
sizeof(COIN_STRUCT)*MAX_NUMBER_OF_COIN+
sizeof(COLLISION_ENNEMI)*NUMBER_OF_LINES+
sizeof(ANIMATION_STRUCT)*MAX_ANIM+
sizeof(SCORE_ANIMATION_STRUCT)*MAX_ANIM+
sizeof(ENNEMI_STRUCT**)*MAX_NUMBER_OF_ENNEMIE_TO_BE_INIT+
sizeof(DEAD_ENNEMI_ANIMATION_STRUCT)*MAX_DEAD_ANIM+
sizeof(EXPLODING_ICEMEN_STRUCT)*MAX_EXPLODING_ICEMEN+
sizeof(FREEZE_GROUND_STRUCT)*MAX_NUMBER_OF_FREEZE_G);


Avec ça, ya zéro allocation à faire quand on joue.

Ce serait plus concis et moins risqué de définir une structure qui contiendrait tout ce que tu veux mettre, ça éviterait de se planter ensuite dans les offsets ^^ (gros_malloc + M_MAP_SIZE + sizeof(STALAG_STRUCT)*MAX_NUMBER_OF_STALAG+ sizeof(COIN_STRUCT)*MAX_NUMBER_OF_COIN, t'as plus de chance de te planter que gros_malloc.animation :D)

-Edité le Jeudi 13 avril 2006 à 15:07 par Pollux-
    
./Post n°92   Marquer comme non lu.
Folco Ecrit le: Jeudi 13 avril 2006 à 15:38 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Jfg :
Plus sérieusement, il y a un bon exemple d'allocation massive avant le début du jeu sur la page qu'a donné Onur:

malloc(M_MAP_SIZE +
sizeof(STALAG_STRUCT)*MAX_NUMBER_OF_STALAG+
sizeof(COIN_STRUCT)*MAX_NUMBER_OF_COIN+
sizeof(COLLISION_ENNEMI)*NUMBER_OF_LINES+
sizeof(ANIMATION_STRUCT)*MAX_ANIM+
sizeof(SCORE_ANIMATION_STRUCT)*MAX_ANIM+
sizeof(ENNEMI_STRUCT**)*MAX_NUMBER_OF_ENNEMIE_TO_BE_INIT+
sizeof(DEAD_ENNEMI_ANIMATION_STRUCT)*MAX_DEAD_ANIM+
sizeof(EXPLODING_ICEMEN_STRUCT)*MAX_EXPLODING_ICEMEN+
sizeof(FREEZE_GROUND_STRUCT)*MAX_NUMBER_OF_FREEZE_G);


Avec ça, ya zéro allocation à faire quand on joue.


et au passage, ça c'est l'exemple typique de jeux qui bouffe un maximum de place au runtime parcequ'il essaye pas de gérer sa RAM autrement que par des malloc énormes. il y moyen de faire _beaucoup_ mieux #hehe#
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°93   Marquer comme non lu.
Jfg Ecrit le: Jeudi 13 avril 2006 à 16:29 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Pollux> pas bête :)

Martial Demolins> Non parceque il peut y avoir des cas où toute cette mémoire est utilisée. Avec cette manière, on est assuré que la partie en cours ne devra jamais s'arrêter pour manque de mémoire.
-Edité le Jeudi 13 avril 2006 à 16:32 par Jfg-
Kill Mario
    
./Post n°94   Marquer comme non lu.
Folco Ecrit le: Jeudi 13 avril 2006 à 16:35 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


à moins de décharger les morceaux de code dont tu n'as pas besoin par exemple :p
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°95   Marquer comme non lu.
Jfg Ecrit le: Jeudi 13 avril 2006 à 16:43 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


ça veut dire quoi ?
Kill Mario
    
  :: Index » Forum Ti68K » Programmation C » J'aimerai vraiment m'améliorer... (139 réponse(s))
Pages : 5/8     « 1 2 3 4 [5] 6 7 8 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 91.24ms avec 18 requetes