Toon posts:

[C++] runtime error R6000

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo, ik schrijf een programma in visual c++.

Probleem:
In een procedure roep ik ongeveer 5 andere procedures aan. Maar als ik er meer dan 5 aanroep krijg ik een vervelende runtime error. Als ik wat meer zoek over deze error zie ik dat dit kan onstaan als volgt:
- recursie: visual c++ is niet echt geschikt voor recursie
- geheugen: er is te weinig geheugen vrij

ik maak niet gebruik van recursie, het is een normaal lineair programma.
geheugen zou kunnen, en hier zit ik ook aan te denken

Vraag:
Hoe kan ik extra geheugen vrijmaken voor deze toepassing, doe ik dit in mijn programma of in DOS? Mijn toepassing draait op een machine die alleen DOS 6.22 bevat.

Een van de procedures bestaat uit een classe, nadat ik hem heb aangeroepen en niet meer gebruik destroy ik hem niet. Is dit nodig? En hoe doe ik dit?

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
visual c++ is niet echt geschikt voor recursie
Lijkt me niet.

destroyen van objecten:
C++:
1
2
3
4
obj = new Object();
//..........use it!
//free memory
delete obj;

Wat niet kan is nog nooit gebeurd


Verwijderd

Topicstarter
is gebruik ook geen recursie, in mijn programma om al iets te voorkomen,
ik zal de destroy proberen

Verwijderd

Topicstarter
C:
1
2
FSearch fSearch;
delete fSearch;


nu krijg ik de foutmelding:
file.cpp(51) : error C2541: delete : cannot delete objects that are not pointers

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Klopt, omdat het object fSearch niet is aangemaakt met het keyword 'new'. Nu staat het object op de stack. Deze zal worden verwijderd als het object buiten scope komt.

Met het keyword new plaats je het object in de object-heap en zal je er zelf voor moeten zorgen dat het geheugen vrijgegeven wordt. Dit doe je met het delete commando.

De foutmelding is nu ook duidelijk; new geeft een pointer van het object terug. Deze pointer wijst naar een adres in de heap.

DUS. OF werken met new en delete of eens kijken naar malloc ed.

Overigens is recursie helemaal niet een 'erg' iets hoor. Meer een handige techniek!

[ Voor 9% gewijzigd door Nexopheus op 13-05-2003 11:07 ]

Wat niet kan is nog nooit gebeurd


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Over welke VC++ hebben we het hier? En zijn de objecten die je op de stack aanmaakt groot? Of maak je gebruik van arrays?

Je kunt met de VC++ linker wel een stackgrootte opgeven, misschien moet je die wat groter maken

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
hoe kan ik de stackgrootte dan vergroooootten?
ik maak overigens gebruik van visual c++ versie 1.52

en het gebruik van recursie, vindt ik overigens heel nuttig en zou ik ook graag gebruiken als het me niet werd afgeraden

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Door wie wordt je dit dan afgeraden????? Slaat echt helemaal nergens op. Of is vc++ 1.52 zo'n wanproduct dat die hier niet goed mee omgaat????

Wat niet kan is nog nooit gebeurd


Verwijderd

Ik denk dat je beter kan overstappen op de DOS of Windows versie van GCC (met RHIDE als IDE ofzo), zal vele malen beter wezen dan VC 1.x (:eek: VC6 was al brak en ik wil niet weten hoe brak 1.x dan wel niet is)

(ik kan even niet meer op de naam komen van die compiler, sorry)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

djgpp

[ Voor 80% gewijzigd door .oisyn op 13-05-2003 12:05 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Eelis
  • Registratie: Januari 2003
  • Laatst online: 21-02-2015
.

[ Voor 95% gewijzigd door Eelis op 18-02-2015 19:41 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Da's voor windows
MinGW: A collection of freely available and freely distributable Windows specific header files and import libraries combined with GNU toolsets that allow one to produce native Windows programs that do not rely on any 3rd-party DLLs.
lijkt me niet echt dat dat werkt onder DOS 6.22 ;)

DJGPP echter wel, in 32 bits protected mode (met al z'n voordelen)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1