Malheureusement je n'ai pas la solution du problème. Juste quelques commentaires. Désolé.
Il me semble évident que vous avez bien parfaitement modélisé le problème. Et pour autant que je sache votre free semble parfaitement valide. Si tant est que le modèle présenté est correct.
Je ne vois donc que quelques commentaires à faire :
- avez vous envisagé qu'en réalité les choses ne se passent pas exactement comme prévu. Par exemple le pointeur tmptab n'est pas vraiment alloué comme prévu, etc. Et dans ce cas il faut suivre au debugger ce qui se passe étape par étape pour soudain observer que le modèle n'est pas bon.
- Une autre possibilité serait un bug du compilateur (par exemple lié au mélange de C et C++). Mais ce serait tellement étrange. À la fois faire le test ne coûte pas grand chose...
- Quelque part, il me semble avoir lu que les mélanges de malloc/free et new/delete sont proscrits ; non seulement pour un tableau (ça vous l'avez parfaitement respecté) mais aussi dans un même code. Je ne suis pas certains que ce soit juste cependant. Le même bouquin prétendait qu'il était cependant possible moyennant quelques précautions de faire le mélange. Si votre problème n'est pas résolu d'ici lundi, je me ferais un plaisir de vous rapporter ce que disait ce livre.
[^] # Re: Plusieurs remarques
Posté par ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ (site web personnel) . En réponse au message Effacer un pointeur fournit par une librairie externe. Évalué à 2.
Malheureusement je n'ai pas la solution du problème. Juste quelques commentaires. Désolé.
Il me semble évident que vous avez bien parfaitement modélisé le problème. Et pour autant que je sache votre free semble parfaitement valide. Si tant est que le modèle présenté est correct.
Je ne vois donc que quelques commentaires à faire :
- avez vous envisagé qu'en réalité les choses ne se passent pas exactement comme prévu. Par exemple le pointeur tmptab n'est pas vraiment alloué comme prévu, etc. Et dans ce cas il faut suivre au debugger ce qui se passe étape par étape pour soudain observer que le modèle n'est pas bon.
- Une autre possibilité serait un bug du compilateur (par exemple lié au mélange de C et C++). Mais ce serait tellement étrange. À la fois faire le test ne coûte pas grand chose...
- Quelque part, il me semble avoir lu que les mélanges de malloc/free et new/delete sont proscrits ; non seulement pour un tableau (ça vous l'avez parfaitement respecté) mais aussi dans un même code. Je ne suis pas certains que ce soit juste cependant. Le même bouquin prétendait qu'il était cependant possible moyennant quelques précautions de faire le mélange. Si votre problème n'est pas résolu d'ici lundi, je me ferais un plaisir de vous rapporter ce que disait ce livre.
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace