Pereiti prie turinio

Problemos del programos luzimo (VEL)


Rekomenduojami pranešimai

Sveiki, pasirasiau programa, bet ji eilini karta uzlusta. Nezinau kur broblema meta toki errora

Unhandled exception at 0x5CDAEC14 (msvcr110d.dll) in FakultetasMain.exe: 0xC0000005: Access violation reading location 0x00B3F234.

butu smagu szuinoti kas cia ne taip, nes jau pora valandu niekaip neissprendziu sitos problemos. Kas baisiausia uzluzta paskutinek jodo eilutej 68. kas blogai?

FakultetasMain.rar

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na manau jau būtų pats metas pačiam pradėti galvoti, nes erroras tai gana aiškiai problemą pasako. Kitas dalykas, tai kam tu tą visual studio naudoji, jeigu net debuginimo jos nenaudoji?

 

Klaidą tai meta todėl nes Fakultetas klasėj n neapibrėžtas ir jį naudoji kaip indexą.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nebe pirmą kartą juk su tokia problema čia rašai – akivaizdžiai ne toks atminties panaudojimas. Kadangi pointerių nenaudoji, tai greičiausiai bus išlipimas iš masyvo rėžių.

 

Fakultetas():n(0) {}

Nuoširdžiai nežinau, ką šitas daro, bet jei nenustato instancijos n į 0, tai tikrai n būna kokia nors kitokia reikšmė, ir bandai dėti į, tarkim, 100000-ąją masyvo vietą, kai jis turi, tarkim, tik 100.

 

Debuggeris būtų padėjęs išspręsti – tereiktų "print n" parašyti toje eilutėje, pvz.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nebe pirmą kartą juk su tokia problema čia rašai – akivaizdžiai ne toks atminties panaudojimas. Kadangi pointerių nenaudoji, tai greičiausiai bus išlipimas iš masyvo rėžių.

 

Fakultetas():n(0) {}

Nuoširdžiai nežinau, ką šitas daro, bet jei nenustato instancijos n į 0, tai tikrai n būna kokia nors kitokia reikšmė, ir bandai dėti į, tarkim, 100000-ąją masyvo vietą, kai jis turi, tarkim, tik 100.

 

Debuggeris būtų padėjęs išspręsti – tereiktų "print n" parašyti toje eilutėje, pvz.

Butent si vieta ir priskiria n nuli.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nesuprantu, kokią velniavą darai tada. Kopijuoji duomenis iš fakulteto į tą patį fakultetą? Kam to reikia? Taip didėja fakulteto n (D.Imti() reikšmė), ciklas gaunasi begalinis (nes i prasideda nuo 0, n didesnis, o jie didėja vienodai), kol galiausiai perlipa masyvo rėžius.

 

Tą patį metodą turėti be argumentų, grąžinantį įrašų skaičių ir su argumentu, grąžinantį vieną įrašą, IMO, nesąmonė. Nebent būtinai taip rašyt liepia. Galėtų būt juk vietoj to Fakultetas::Ilgis().

 

Beje, nesikompiliuoja su GCC be -fpermissive flago:

Studentas.h:18:6: error: extra qualification ‘Studentas::’ on member ‘operator!’ [-fpermissive]

Kai kodas ir taip klasės bloke, tai nereikia papildomo "Studentas::" – ir taip aišku, kad priskirs šitai klasei, o ne ananaso.

 

Dar ne visai akivaizdus dalykas yra operator! nustatymui, ar pažangus mokinys. Ne geriau tiesiog įprastas metodas?

 

O ką kalbėti apie tokias struktūras:

for (..)
 if (...)
   do_something()

Juk verta uždėti skliaustus vardan aiškumo... Baitai daug nekainuoja.

 

––

 

Ok, po biškį suprantu: nori pažangius studentus perkelti į kitą fakultetą? Tada kurk dvi atskiras instancijas :)

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...