Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: substr() kaataa ohjelman

hyyppä [01.04.2007 17:35:45]

#

Elikkä olen kyhännyt pientä irc bottia, mutta eräänä kauniina päivänä botti alkoi kaatua aina kun ohjelma suorittaa edellä olevan pätkän string n (s.substr(i+6));
ja komentoriville tulee teksti
"This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information."
Oudoksi tämän ongelman tekee se että ennen ohjelma toimi hyvin, vaikka siinä oli tuo sama koodinpätkä.

Mazzimo [01.04.2007 19:39:11]

#

Stringin substr-metodi laukaisee assertion jostain syystä. Todennäköisesti merkkijono "s" on lyhyempi, kuin "i+6".

hyyppä [01.04.2007 20:40:57]

#

Kiitoksia, se tosiaan oli lyhempi. Vain pieni typerä virhe jota sai miettiä päivä tolkulla. Mutta mikä tuo assertio on?

Mazzimo [01.04.2007 21:11:49]

#

Todennäköisesti assert-makro, joka löytyy standarti-kirjastosta <cassert>. Debuggauksen ollessa päällä assertille välitetty lauseke tarkistetaan, ja jos se on false, keskeytetään ohjelman suoritus välittömästi. Siis:

assert( pituus < 10 );

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta