Et c'est surtout que tu n'as plus la possibilité de faire un delete sur la string. Car la string retournée est une copie de celle créée dynamiquement avec new.
Il y a donc 2 objets string : celle retournée et celle créer dynamiquement dans la fonction. Ce sont 2 objet différents, leurs adresses ne sont pas identique : &returnedString != temp. Tu perds donc l'adresse de la string allouée dynamiquement, la mémoire ne pourra plus être libérée dans le programme puisque tu n'a plus de pointeur pointant sur l'objet dynamique pour faire un delete dessus.
Partager