求助,程序运行4~5小时出错,错误为0x80000003

lunch1234 2011-11-22 10:23:39
本人编写了一个模拟航空影像的程序,利用大面积的高程模型(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的次数,我将程序改为一次申请好空间,每次均使用同一空间,程序依然会出错。

希望大家能帮我找找原因,并能提出解决方法,多谢了
...全文
482 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lunch1234 2011-11-25
  • 打赏
  • 举报
回复
谢谢各位,现在大致确定出错范围,应该是数组越界或者是数组读取失败,还要进一步调试才知道结果。
qscool1987 2011-11-22
  • 打赏
  • 举报
回复
除了内存泄漏我想不到其他什么情况
bdmh 2011-11-22
  • 打赏
  • 举报
回复
自己写个日志,除了考虑内存是否够用,还要看是否有越界问题
柯本 2011-11-22
  • 打赏
  • 举报
回复
可能的问题是内存泄漏,找个工具(如PurifyPlus)测试下
机智的呆呆 2011-11-22
  • 打赏
  • 举报
回复
十有八九内存访问越界。
10000*15000*BYTE和7500*11500*BYTE
足够吗?
Snight 2011-11-22
  • 打赏
  • 举报
回复
野指针,越界都查查呗

64,641

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧