Page 1 of 1

MemoryError

Unread postPosted: 01 Jul 2021, 17:10
by Fabien59
Bonjour,

J'ai réalisé sur TI83 deux script A et B. Le script B contient des fonctions appelées par le script A. Tout fonctionne parfaitement.
J'ai testé de coller toutes les fonctions présentes dans le script B directement dans le script A. Mais à l'exécution, j'ai une erreur "MemoryError : memory allocation failed, allocating 167 bytes".

Comment expliquer cette différence de résultat ? En effet, pour moi, dans les 2 cas, les fonctions appelées sont les mêmes et la mémoire occupée devrait donc être la même, non ?
Dois-je en conclure que pour éviter ce type d'erreur, il est toujours judicieux de découper un script en plusieurs modules ?

Merci.

Fabien

Re: MemoryError

Unread postPosted: 01 Jul 2021, 20:51
by critor
Bonsoir.

Pour le découpage des scripts, non il n'y a pas de règle absolue.

J'ai déjà remarqué des bizarreries de ce genre lorsque l'on est très proche de la limite de mémoire heap disponible.

Re: MemoryError

Unread postPosted: 17 Aug 2021, 23:15
by rentech7289
Ce n'est pas une une différence de résultat. C'est comme pour un couper-coller ou un copié-coller. S'il n'y a pas assez de mémoire libre, l'opération échoue parce qu'il faut la même quantité de mémoire pour le presse-papiers. Deux solutions:
La plus simple: opération par morceaux de code plus petit.
La moins pratique: supprimer le code dans un pour le réécrire dans l'autre...