Bonjour,
Comme je suis encore débutant en programmation... J'ai des fuites. Alors j'ai une question, je vous montre le code :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
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...
Partager