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 » Validation de l'espace mémoire (10 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Thor Ecrit le: Mercredi 4 août 2004 à 11:14 Déconnecté(e)    Voir le profil de Thor Envoyer un email à Thor Visiter le site WEB de Thor Envoyer un message privé à Thor  


La plupart des jeux importants (en taille) vérifie en début de programme si la place de mémoire RAM restante est suffisante. Comment s'effectue ce test? Existe t'il une fonction telle que celle en basic permettant d'accéder aux propriétés de la mémoire? LA deuxième moyen que je pensais serait d'allouer un buffer de la taille de la place nécessaire et de vérifier si l'instruction a été exécutéez correctement! Quelle est la véritable solution?
Cyril MOTTIER aka {==Thor==}
Modérateur général du forum de Tigen
[Etudiant à l'Institut National des Sciences Appliquées (INSA) de Rennes]
Mon site perso c'est ici
    
./Post n°1   Marquer comme non lu.
Sasume Ecrit le: Mercredi 4 août 2004 à 11:20 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Je pense que la plupart des jeux font leurs allocations et vérifient qu'elles n'échouent pas.
Si elles échouent, ils quittent (en libérant les allocations qui ont fonctionné).

C'est mieux d'essayer de regrouper les allocations.
    
./Post n°2   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 4 août 2004 à 11:21 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

> Comment s'effectue ce test?
Je ne le sais pas exactement (on pourrait désassembler), mais une implémentation qui me vient à l'esprit est "prendre la taille de la RAM et enlever les tailles des blocs alloués en RAM" (+2 octets à chaque fois à cause des octets de contrôle).

> Existe t'il une fonction telle que celle en basic permettant d'accéder aux propriétés de la mémoire?
Ca me paraît correspondre à HeapAvail. HeapMax peut également être utile...

> LA deuxième moyen que je pensais serait d'allouer un buffer de la taille de la place nécessaire et de vérifier si l'instruction a été exécutéez correctement! Quelle est la véritable solution?
Sauf que ça ne marchera pas si le buffer fait plus de 65518 octets, il faudrait en allouer plusieurs.
Lionel Debroux - membre de TICT.
    
./Post n°3   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 4 août 2004 à 11: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  


Thor :
La plupart des jeux importants (en taille) vérifie en début de programme si la place de mémoire RAM restante est suffisante. Comment s'effectue ce test?

On vérifie le résultat de chaque allocation. C'est la seule méthode valable. Il y a aussi HeapAvail, mais ça ne garantit pas du tout que la mémoire n'est pas fragmentée d'une manière qui t'empêche d'allouer des blocs de la taille voulue.
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°4   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 4 août 2004 à 11:24 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

> C'est mieux d'essayer de regrouper les allocations.
Oui. Je me bats assez pour que le plus d'auteurs possibles le fassent - même si je ne peux pas toujours le faire moi-même (je n'allais pas risquer de breaker TI-Con45, par exemple)...
Lionel Debroux - membre de TICT.
    
./Post n°5   Marquer comme non lu.
Thor Ecrit le: Mercredi 4 août 2004 à 11:27 Déconnecté(e)    Voir le profil de Thor Envoyer un email à Thor Visiter le site WEB de Thor Envoyer un message privé à Thor  


Oui d'accord merci à vous le meiux est donc d'allouer des buffers :D
Cyril MOTTIER aka {==Thor==}
Modérateur général du forum de Tigen
[Etudiant à l'Institut National des Sciences Appliquées (INSA) de Rennes]
Mon site perso c'est ici
    
./Post n°6   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 4 août 2004 à 11:34 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

J'ajoute que j'ai bien assez breaké les softs de TICT comme ça (crash report sur TI-Puzzlize, de nombreux softs updatés ne marchent pas sur V200)...
Lionel Debroux - membre de TICT.
    
./Post n°7   Marquer comme non lu.
limmt Ecrit le: Mercredi 4 août 2004 à 12:06 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


tu peut utiliser malloc_throw pour vérifier mais ca les libérera pas si y'a plus de place pour allouer (sauf mode kernel et preos)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°8   Marquer comme non lu.
Thor Ecrit le: Mercredi 4 août 2004 à 12:11 Déconnecté(e)    Voir le profil de Thor Envoyer un email à Thor Visiter le site WEB de Thor Envoyer un message privé à Thor  


non le plus simple est de faire :
short test;
if (!(test=malloc (40100)))
{printf_xy(10,10,"Pas assez de place");}
else 
{free(test);}
Cyril MOTTIER aka {==Thor==}
Modérateur général du forum de Tigen
[Etudiant à l'Institut National des Sciences Appliquées (INSA) de Rennes]
Mon site perso c'est ici
    
./Post n°9   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 4 août 2004 à 12:13 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  


Lionel Debroux :
J'ajoute que j'ai bien assez breaké les softs de TICT comme ça (crash report sur TI-Puzzlize, de nombreux softs updatés ne marchent pas sur V200)...

Et ben, je ne peux que te dire "bravo". Voilà ce qui se passe si on s'amuse à "optimiser" des programmes qui marchaient très bien. Thomas n'est pas un mauvais programmeur, et tu es en train de complètement démolir ses programmes avec tes "optimisations". :( Ah, comme je regrette les temps quand la TICT était symbole de programmes propres et stables...

[EDIT: Activé les smileys.]
-Edité le Mercredi 4 août 2004 à 22:56 par Kevin Kofler-
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°10   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 4 août 2004 à 17:19 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Je suggère que le topic soit fermé: il a trouvé sa solution, et il dévie. Je répondrai à cette provocation en privé...
Lionel Debroux - membre de TICT.
    
  :: Index » Forum Ti68K » Programmation C » Validation de l'espace mémoire (10 réponse(s))
Pages : 1/1     « [1] » »|

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 70.57ms avec 18 requetes