Portál AbcLinuxu, 9. května 2024 00:52


Dotaz: QString iterator a toInt

Saljack avatar 3.2.2011 23:41 Saljack | skóre: 28 | blog: Saljack | Praha
QString iterator a toInt
Přečteno: 157×
Odpovědět | Admin
Řeším teď problém, kde mám jeden z argumentů číslo. Argumenty procházím za pomocí iterátoru a mám problém, že když na ten iterátor zavolám toInt(), tak mi začne vypisovat něco s invalid pointer. Problém ovšem nebude v toInt ale v destruktoru QString a zaboha nemůžu přijít na to kde ta chyba je. Jako řešení, které funguje je převedení na string a ze stringu opět vytvořit QString ovšem tohle mi příjde hrozně zbytečné. Ještě dodám, že to tu chybu vypisuje pouze pokud je číslo dvoumístné nebo třímístné, pokud je více místné tak to v pohodě projde. Tady je ukázka jak bych chtěl aby to bylo:
QList<QString>::iterator i = a.arguments().begin();
int num = i->toInt();
Chyba je celkem nic neříkající: free(): invalid pointer:.
Předem díky za jakoukoliv radu nebo vysvětlení v čem je problém.
Sex, Drugs & Rock´n Roll.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

David Watzke avatar 4.2.2011 00:52 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: QString iterator a toInt
Odpovědět | | Sbalit | Link | Blokovat | Admin
No není to náhodou v tom, že objekt vytvořený metodou arguments() hned zanikne a ty pak voláš hovadinu? Opravit by to mělo jít tak, že si a.arguments() uložíš do lokální proměnný a teprv z tý si vytvoříš iterátor.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Saljack avatar 4.2.2011 08:00 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: QString iterator a toInt
Děkuji ti dobrá vílo tohle mě nějak nenapadlo. Teď koukám, že je to i napsané v dokumentaci, ale když se nad tím zamyslím je to logické.
Sex, Drugs & Rock´n Roll.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.