边界溢出。哈。反正这样的错误有很多名词。通常的出错原因是,望一个数据区域里面写了太多的东西。但还是得写啊,于是把其他存储区域的数据给改写了。
这个时候通常还不会错,但改写的内容,被当作地址,再次写东东时就错了。哈。这种错误可以通过对循环体的检测来依次判断逻辑哪错了。静态检测绝大多数情况下搞不定的。自己写个测试代码,嵌里面,如果循环量大于存储可用空间,就打印到屏幕上或文件里,修正下值,继续跑。哈。反正别用ide里的debug工具,谁用谁sb,觉得自己不够sb是因为还没遇到复杂的情况。
回复 @中山野鬼:??回复 @ShiningPig:继续。哈。回复 @中山野鬼:刚刚发现一个问题,程序运行过程中所占内存在逐步增加,当报错的时候已经快占满内存了。。。。是不是因为这个呢?回复 @ShiningPig:你这样,把函数进行注释,看哪段函数没执行,能不出错,那么出错点就在这个里面,但错误不一定全在这里。哈。回复 @中山野鬼:就是对这个出错的函数单独debug? 0x70763405这个地址有点高,一般不是你的程序空间。多为DLL空间,好好检查一下你调用DLL函数的参数有没有不合理的。回复 @ShiningPig:所以只能检查参数是否改变,这个错误貌似是把0x00000080当指针传进去了回复 @小苏打:这个函数是单独下载的库里面带的,内部的东西估计我是看不到的吧……出错应该在0040A456calldwordptr[__imp__fftw_plan_dft_1d(4132CCh)]函数里面版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。