Problème de fuites mémoire
Bonjour,
Comme je suis encore débutant en programmation... J'ai des fuites. Alors j'ai une question, je vous montre le code :
Code:
1 2 3 4 5 6 7 8 9 10 11
| template<typename TYPE> void Array<TYPE>::Reverse(TYPE* Sequence, int TailleSequence)
{
TYPE SeqAlt[TailleSequence];
for (int i=0 ; i < TailleSequence ; i++)
{
SeqAlt[i] = Sequence[TailleSequence-1-i];
}
delete[] Sequence;
Sequence = SeqAlt;
} |
Le but du jeu ici est de changer l'ordre du tableau. Pour ce faire, je crée un nouveau tableau de la même taille, nommé SeqAlt, puis j'affecte les valeurs de Sequence à SeqAlt.
Jusque là rien de bien méchant on dirait. Mais problème, valgrind me dit qu'il y a une fuite de mémoire ; normal, le tableau Sequence n'est pas libéré... Donc, je mets un "delete[] Sequence" avant de faire la nouvelle affectation.
Où est le problème, selon vous ?
(Alors, 1. non, je ne voulais pas utiliser les std::vector, et 2. je voulais que SeqAlt ne soit pas en retour de la fonction mais bien passé en adresse)
Le compilateur ne dit rien, mais à l'éxecution ça râle beaucoup...
Sans le delete[], ça ne bug plus, mais il y a me semble-t-il des fuites de mémoire...