acces violation error na random aantal keer loopen

Status
Niet open voor verdere reacties.

KristienDC

Nieuwe gebruiker
Lid geworden
2 sep 2009
Berichten
4
Hey mensen

Ik vul hier eerst een matrix (tweevoudige dynamische array) met gegevens die ik haal uit een textfile met de coördinaten en uit een binaire file met de meetgegevens horend bij die coördinaten. (Als je het doel moet weten van het programma, om beter de fout te vinden, laat het dan weten. Ik dacht niet dat het nodig was, en wilde hier niet een te lange vraag van maken). Het programma geeft geen errors bij compilen, maar als ik het laat lopen wel.

Het is een raster van 800 op 800, dus 640000 punten en na een willekeurig aantal ingelezen punten, komt er bij het inlezen van een meetgegeven een acces violation error tevoorschijn. Meestal is dat al bij het 338e, 339e, soms 527e rasterpunt. Ik heb gecheckt in de files die ik als input gebruik, of er iets mis was met dat zoveelste meetgegeven, dat was niet het geval. Het had net dezelfde waarde als de voorgaande meetgegevens. Hoe kan dit? Is het een buffer overflow? Valt dat op te lossen?

Ik ben slechts een beginner in c++. Please help. Ik heb dit dringend nodig voor mijn project.

Het deel van het programma waar de fout gebeurt zit in bijlage.

Alvast bedankt

Kristien
 

Bijlagen

De waarde van kol is nul vanwege de initialisatie
Code:
        int kol = 0;
Daarna gebruik je kol hier
Code:
	for( row = 0 ; row < 800 ; row++ )
		kmi[row] = new raindata[kol];
	for( row = 0 ; row < 501 ; row++ )
		rimpuffgrid[row] = new raindata[kol];
Daarmee alloceer je nul objecten en heb je dus later een buffer overflow.
Ken eerst een waarde toe aan kol. Bijv. kol = 800;
voordat je geheugen alloceert.
 
Erg dat ik daarover heb gekeken! Het is inderdaad opgelost nu. Heeeel erg bedankt voor de ook erg snelle hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan