Podczas pracy mój program otrzymuję ten błąd:Jaki jest sens tego C++ Błąd std :: length_error
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_S_create
Abort trap
wiem, że nie można zrobić wiele bez kodu, ale myślę, że to jest błąd zbyt głęboko w kodzie, aby go skopiować. Może uda mi się to zrozumieć, jeśli rozumiem, co oznacza ten błąd. Czy to oznacza problem z odczytaniem lub zapisaniem pod niewłaściwym adresem pamięci?
Czy jest coś, co mogę zrobić, aby uzyskać więcej informacji o problemie z mojego programu?
Czy można opublikować fragment kodu, do którego uzyskujesz dostęp do ciągu znaków? –
Ciąg nie jest problemem. Po drobnych zmianach i dodaniu komunikatów do debugowania dostaję prawdziwą segfault;) – Janusz
Oprócz odpowiedzi Kevina: Może zrobiłeś kilka obliczeń, które prowadziłyby do ujemnej długości łańcucha? Ponieważ długość ciągu jest (zwykle) zapisywana jako wartość unsigned, twoja wartość ujemna prowadziłaby do bardzo dużej wartości dodatniej, która jest większa niż std :: string :: max_size()! – mmmmmmmm