Bonjour,

Comme je suis encore débutant en programmation... J'ai des fuites. Alors j'ai une question, je vous montre le code :
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;
}
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...