Bonjour à tous,
Je suis face à un problème que je ne parviens pas à résoudre.
Soit la ligne suivante, où up et tangage sont des vecteurs (au sens géométrique, pas au sens de structure de stockage) :
La fonction add(Vecteur*) ajoute l'argument à son receveur, et la fonction times(double) renvoie le receveur multiplié par le scalaire passé en argument.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tangage->add(up->times(0.1));
La méthode times(double) crée un nouveau Vecteur, il y a donc un toto=new Vecteur(blabla), et lui donne comme coordonnées les valeurs qui vont bien.
Est-ce que cet appel à new Vecteur(blabla) est à l'origine d'une fuite de mémoire ?
Je me pose la question car je ne vois pas à quel moment le resultat de up->times(0.1) sera détruit.
Si il y a effectuvement une fuite de mémoire, comment faut-il faire ?
Il faut avouer que
est un peu lourd, et encore, il n'y a qu'un niveau d'imbrication.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Vecteur* toto = up->times(0.1); tangage->add(toto); delete toto;
Partager