Witam!
Napisałem sobie prostą funkcję konwertującą:
string roundStr (float liczba, int ile_miejsc)
{
string liczbaStr, zera(ile_miejsc, '0');
liczba = liczba * pow(10, ile_miejsc);
liczba = int (liczba + 0.5);
stringstream liczbaStrS;
liczbaStrS << liczba;
liczbaStr = liczbaStrS.str();
if(int(liczba) % 10 == 0)
liczbaStr.append(zera);
liczbaStrS.clear(); //1
liczbaStrS.str(std::string()); //2
return liczbaStr;
}
Kompiluje się, ale kompilator wyrzuca mi:
*** glibc detected *** /media/disk/c++/projects/akcje2/Debug/akcje2: free(): invalid next size (fast): 0x080d42d0 ***
czyli jakiś wyciek pamięci (?)
Wygooglowałem, że powinno się czyścić stringstream. Stąd też linie 1 i 2. Kombinowałem z tworzeniem strumienia za pomocą new i wywoływaniem jego destruktora.. na razie bezskutecznie :(
Proszę o jakąś pomoc..
Pozdr!