求助,程序运行4~5小时出错,错误为0x80000003
本人编写了一个模拟航空影像的程序,利用大面积的高程模型(DEM)和正射影像(DOM)来生成指定大小的小影像。
由于代码较多,此处不便于粘贴,但程序大致思路如下:
1. 通过读文件获取各个影像的空间位置。
2. 对每张影像(试验用的15~20张,实际应用超过60张)申请数组,分别存储影像覆盖范围内的高程值,DOM灰度值,和影像本身的灰度值。(分别new了约5000*6000*double,10000*15000*BYTE和7500*11500*BYTE)
3. 利用摄影测量算法,通过高程值和DOM灰度值及影像空间位置获取影像对应像素的灰度。
4. 将影像灰度数组写入文件,并删除2步骤中所有申请的数组空间。
5. 重复2~4直至所有影像模拟完成。
实际运行情况是,生成一张影像大约要36分钟,每次运行到第8或第9张的时候程序就会报错0x80000003,位置每次有所不同。查看前面生成的影像,效果正常。整个程序运行过程中,所占用的系统内存也基本稳定,暂不存在数组越界的问题。
帖子 http://blog.163.com/tds_609/blog/static/26883535200731242849575/ 中提到了类似的问题,但说原因是new的次数太多,但运行到第9张实际new的次数也不过几十次,相比2,147,483,647小了很多,不知如何解释。
此外,为了减少new的次数,我将程序改为一次申请好空间,每次均使用同一空间,程序依然会出错。
希望大家能帮我找找原因,并能提出解决方法,多谢了