Diskuze: fronta a neoprávněný přístup do paměti
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 15 zpráv z 15.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
ne, používám třídu z std knihovny
Nevím, nevidím tam nic, co by mělo vyhodit seg. fault. Budeš muset počkat na odpověď někoho jiného
Ještě jsem objevil jednu věc - pokud odeberu negaci (vykřičník) u "fronta.empty()", cyklus se normálně přeskočí a chybu to nevyhodí
Hledám cestu šachového koně do určených bodů... nevím, jak to v c++ funguje, ale když dám 'cout << "cyklus"' na zacatek cyklu, nic se nevypise.
Slovní popis je fajn, ale tady bude potřeba asi kód.
tady:
http://pastebin.com/0KP4YgZQ
Doufám, že mě neukamenujete za ten kód...
Je to rozpracované řešení téhle úlohy:
https://ksp.mff.cuni.cz/…zadani4.html#…
Uff.
Todle by jsi měl směřovat na fórum přímo od KSP (resp. KSP-Z). Jinak sorry, nějak se mi to nechce luštit co tam kde děláš. Zkus to nějakým způsobem vydebugovat, třeba stylem, že si vypisuješ tu šachovnici a sleduj co ti tam vůbec teče za data. Ten index tam potom skáče do rozhodně větších hodnot než 0-4 a to je jeden z problémů co tam vidím.
Jinak, nevím jakým stylem to testuješ, ale pro jakékoliv algoritmické úlohy si vždycky přesměrovávám vstup na soubor, abych nemusel to nemusel při každém debugu vkládat.
Jen na začátek dáš:
FILE * in;
freopen_s(&in, "in.txt", "r", stdin);
A do souboru si hodíš ten vstup:
9
6 1
2 2
6 5
2 6
3 7
8 2
5 3
3 3
7 8
1 8
Chapu z toho, ze je tedy problem nekde v tom cyklu. I to je podstatna rada Jinak vstup ze souboru smeruju v bashi takhle: /path/to/script < /path/to/input
Myslím, že při posílání dat na standardní výstup se aplikuje nějaká vyrovnávací paměť knihovny, takže daný výstup nemusíš vidět v okamžiku, kdy k němu v programu reálně dojde. Měla by existovat nějaká funkce typu flush či std::flush řešící tento problém (donutí vyprázdnit vyrovnávací paměť pro daný proud).
Díky za odpovědi a váš čas Už se mi problém podařilo vyřešit. Problém byl skutečně v cyklu - zaráželo mě tedy, že se nevypisovaly výpisy před ním...
Zobrazeno 15 zpráv z 15.