Fortran Coder

查看: 15867|回复: 5
打印 上一主题 下一主题

[求助] 关于access violation

[复制链接]

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2020-3-1 09:02:20 | 显示全部楼层
这极可能是堆栈失衡了。
检查一下对程序的调用,特别是第三方函数库或混编的函数调用。
还有可能是主程序里有个数据结构(数组或结构体),传递给子程序的时候,子程序误以为大小比真实的大,所以操作(修改)了超过范围的该数据结构内容。

你说的“秋后算账”,这事还真的是有的。函数返回(包括主程序返回)的时候,会进行堆栈还原等操作。如果此时堆栈失衡,就会出问题。
比如程序准备返回主程序之外(运行时库)的返回点,但是这个返回点原来是存储在堆栈里的,失衡以后被破坏,导致返回失败。(比如要返回 0x00000000就会失败)
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-4 01:12

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表