Voilà, j'ai un programme qui fait un malloc(64). On me dit que ce programme ne libère pas correctement la mémoire, pourtant les malloc() et les free() sont correctement balancés. Est ce que cette allocation de 64 octets pourrait en être la cause ? N'y a-t-il pas de problèmes à allouer une zone de mémoire trop petite ? J'avais cru entendre parler de cela...
merci d'avance
ced38 Le 11/10/2001 à 18:29 y faut pas mettre malloc(63) par hasard ???
En HIBERNATION !
C'est une façon pour moi de dire merde à la société :D
MERCI sBibi ENCORE ET ENCORE POUR ...
From Grenoble.
Miles Le 11/10/2001 à 18:29 non. C'est bien 64 octets qui seront alloués. Il faut vérifier que chaque handle est libéré.
je me demande s'il n'y a pas un minimum de 8 octets pour les HeapAlloc...
vu que malloc, c en gros la même chose (mis à part le fait que ça retourne un pointeur au lieu d'un Handle...)....
Mais pas sûr...
Je ne pense pas que les 64 octets soient le problème. Demande à tes utilisateurs s'ils ont bien effacé l'historique de l'écran HOME.
Apparament oui, et la différence est tout de même assez énorme (quelques dizaines de ko). Parfois même ils ont une indication de mémoire négative, ce qui conforte l'idée d'un bug. Je me souviens que sur les TI92 1, la gestion mémoire était complètement buggée.
Bon je vais le virer de toutes façons.
Miles Le 11/10/2001 à 18:29 Est-ce que tu créer des fichiers dans la VAT ? Si c'est le cas, il faut vérifier que les 2 premiers octets contienent bien la taille réelle, sinon le calcul de la mémoire plante...
De plus le bloc alloué a effectivement une taille minimale, c'est pour ça que si vous faites plusieurs malloc, réécrivez la fonction malloc pour allouer plus de place, et donc économiser des handles. Par exemple, allouer 5 fois plus de mémoire, comme ça, les 4 fois suivantes seront exemptes d'appels...
Il existait aussi un problème de ce genre quand j'utilisais DOORSOS, ma bataille navale ne llibérait pas toute la mémoire... et pourtant, j'avais qu'un handle, donc pas de problème, mais je lançais à partir de DOORS, donc il peut peut-être y être pour quelque chose...