[ PeraT @ 09.05.2004. 19:29 ] @
U pitanju je projekat u VC++.NET-u, kojim sam pokusao
prikazati kako rade neke tehnike 1d i 2d-interpolacije.

Nije nista posebno ali evo linkova:
http://alas.matf.bg.ac.yu/~mr00053/nm/nm_bin.zip - 83KB
http://alas.matf.bg.ac.yu/~mr00053/nm/nm_src.zip - 26KB
http://alas.matf.bg.ac.yu/~mr00053/nm/glut_win32_package.zip 106KB

Nakon Tabelar_New->Newton opcije, kada se
pozove neka opcija u kojoj se pominje 2xod, izece mi sledeca
poruka:

Debug Assertion Failed!
Program: ...
File: dbgheap.c
Line: 1100

Expression: _CrtCheckMemory()

dok se u "output" prozoru editora koda ispisuje:

DAMAGE: after Normal block (#140) at 0x04999188.
Normal located at 0x04999188 is 4 bytes long.
...

naravno kada program pokrenem iz editora. Sto je najgore,
nakon nekih 25-30 kliktanja na Ignore program ipak odradi
ono sto treba (povrs ispravno morfuje).

Kao sto se iz prilozenog koda vidi, nisam bas neki znalac C++-a,
pa sam malo mesao C++ i C. Da li bi to mogao biti uzrok
pojavljivanja gornjih gresaka? Ako nije to, gde bi mogao traziti
gresku?

HELP

pozdr.
[ Reljam @ 09.05.2004. 19:48 ] @
Ta greska se dobija zato sto si prepisao kraj nekog bafera, recim ovako:

Code:

int *p = new int[10];
int i;

for (i=0; i<20; i++)
    p[i]=0;


Videces da onog trenutka kada pokusas da upises 11. element, dolazi do heap corruptiona jer si izasao van validnog opsega (0 - 9). Pogledaj gde u tvom kodu pises po nizovima, i vidi da nisi mozda uradio slicnu stvar.
[ PeraT @ 14.05.2004. 22:37 ] @
OK, zahvaljujem.
Ispravio sam (delimicno) gornji problem. Delimicno, jer mi sad
javlja istu poruku kao i ranije samo je umesto Line: 1100 sada
Line: 346. Dakle:

Debug Assertion Failed!
Program: ...
File: dbgheap.c
Line: 346

Expression: _CrtCheckMemory()

...

bas bedak.
zdr.