Bonjour, encore besoin d'un coup de main : je vais de crash en crash sans
arriver à déterminer ce qui ne va pas. Une chose est sure, l'outil que
j'utilise pour vérifier les erreurs d'allocation/deallocation me signale
une erreur dans une de mes méthodes sans que je comprenne ce que je peux
bien faire de travers.
Voici une version réduite du code, je voudrais que vous me disiez si ce
que je fais est valide ou pas (je parle du principe, je poste donc une
version simplifiée du code d'origine).
Une erreur est détectée sur la ligne Sprite2D* new_stuff = new Sprite2D
();
L'erreur est "allocation overrun", ce que je traduis par débordement
d'allocation, je suppose que le heap de l'application est endommagé à ce
moment précis (c'est une simple supposition).
Toujours est-il qu'à la sortie de l'application, quand je dois détruire
les instances allouées dynamiquement le heap est réellement endommagé.
Du coup, je me demande s'il est bien possible d'avoir :
- dans main un objet déclaré comme Stuff2D*
et
- dans loadStuff retourner en réalité soit un Sprite2D*, soit un
Sprite2DAnimated*
Y-a-t-il quelque chose d'erroné dans ma manière de procéder ??
Il n'y a rien ou presque dans le constructeur de sprite2D, de mémoire :
m_posX = 0; m_poxY = 0; m_surface = NULL;
et celui de Stuff2D est un constructeur vide...
Alors il y a un vrai problème. Je ne vois pas du tout dans ton code ce
qui pourrait poser problème (mais ça peut venir d'un bout de code non montré...) Comme on te l'a suggéré, tu as essayé dans un autre environnement (autre compilo, autre système, etc...) ?
Non, mais je vais essayer quelque chose : recréer un nouveau projet et en quelques copier/coller voir si je peux reproduire le phénomène ou pas...
Alexandre - alex.g@netcourrier.com :
Il n'y a rien ou presque dans le constructeur de sprite2D, de mémoire
:
m_posX = 0;
m_poxY = 0;
m_surface = NULL;
et celui de Stuff2D est un constructeur vide...
Alors il y a un vrai problème. Je ne vois pas du tout dans ton code ce
qui pourrait poser problème (mais ça peut venir d'un bout de code non
montré...) Comme on te l'a suggéré, tu as essayé dans un autre
environnement (autre compilo, autre système, etc...) ?
Non, mais je vais essayer quelque chose : recréer un nouveau projet et en
quelques copier/coller voir si je peux reproduire le phénomène ou pas...
Il n'y a rien ou presque dans le constructeur de sprite2D, de mémoire :
m_posX = 0; m_poxY = 0; m_surface = NULL;
et celui de Stuff2D est un constructeur vide...
Alors il y a un vrai problème. Je ne vois pas du tout dans ton code ce
qui pourrait poser problème (mais ça peut venir d'un bout de code non montré...) Comme on te l'a suggéré, tu as essayé dans un autre environnement (autre compilo, autre système, etc...) ?
Non, mais je vais essayer quelque chose : recréer un nouveau projet et en quelques copier/coller voir si je peux reproduire le phénomène ou pas...