这礼拜在工作中遇到了非法访问内存问题,也就是 Access violation问题,出现了类似下面这种报错:

Access violation at address ××× in module  'xxx.exe'   Read of address 000000

Access violation分两类:运行期和设计期。
我这边遇到的是运行期Access violation问题!

常常在计算机用户运行的程序试图存取未被指定使用的存储区时遇到
解决方法:任何一个new都需要判断结果是不是没有分配到内存,并且记录下LastError,以及位置。

接下来是我解决的思路:
我猜测是内存溢出问题,可能代码中没有将使用过的窗体释放所以才造成了这类问题,关于内存问题,这边要提一下:内存泄露和内存溢出。
还有在delphi调试过程中快捷键:
ctrl+alt+m,可以查看每个函数过程的内存位置。
Ctrl+Alt+C 查看代码对应的汇编

内存溢出是指:程序再申请内存时,没有足够的内存空间供其使用。比如往int存入long
内存泄露是指:无法将已申请的内存释放。一次内存泄露不可怕,但是内存泄漏堆积的话无论多少内存都会被占满,造成内存溢出问题。(内存泄露产生的情况应该是,你的某个指针指向这块内存,但你用完了没有free,然后你自己找不到这块内存,而系统也不能将这块内存回收,所以内存泄露了,在java种类似这样的一块内存会被gc识别为不可达内存而清理掉)
内存泄露可以分为4类:
1.常发性内存泄露,即发生内存泄露的代码不止执行一次
2.偶发性内存泄露,即在特定环境下发生内存泄露。
3.一次性内存泄露,发生内存泄露的代码只执行一次,比如构造函数分配了内存,但析构函数没有释放
4.隐式内存泄露,程序运行过程中不断分配内存但直到结束才释放内存,比如程序运行时间过长,耗尽了系统内存。虽然这种情况最后都释放了内存,但这其中的过程中出现了内存泄露的那种内存情况,所以我们称之为隐式内存泄露。
好的我们继续
我试着在窗体创建上面加入如下代码:

if Assigned(XXXForm) then   XXXForm:= nil;
//上面这行是我加进去的
XXXForm:= TXXXForm.Create(nil);
XXXForm.vProDepID:=PSubject(vSelectTreeNode.Data)^.iSubID;
XXXForm.vState := 0 ;
XXXForm.ShowModal;
final
FreeAndNil(XXXForm);

然后Access violation 报错就不会再跳出来了。

在Delphi中一个对象名只是一个指向该对象的指针,可以有多个指针指向同一个对象地址。Nil是将指针置空,而Free则将指针指向的对象销毁掉。

还有在销毁对象时一定要注意,看还有没有其他指针指向该对象,如果有却销毁掉了,那么其他指针调用该对象时会报错。

这个报错是在我退出系统之后才弹出来警告,那是不是意味着,退出系统的时候要执行Free将XXXForm的内存销毁,但是在此,有其他对象要访问XXXForm所以报错了。

参考:http://www.voidcn.com/article/p-fsbyxmkv-beo.html

还有在这边记一下:学习过的内容要经常复习。所以要多看看自己的博客!!!

Access violation问题相关推荐

  1. pl/sql dev连接报错Access violation at address 67614F04 in module 'oranls11.dll'

    这个可能是因为你的客户端安装了多个Oracle 软件导致, 还有一种可能是本地Oracle版本过低,连接的Oracle数据库版本过高. 这里排除第二种可能. 解决办法:  打开你的PL/SQL Dev ...

  2. Access violation at address 0x77f96c94

    Access violation at address 0x77f96c94 Delphi / Windows SDK/API http://www.delphi2007.net/DelphiMult ...

  3. Forrtl: severe(157): Program Exception - access violation

    这是在Fortran中经常碰到的错误,access violation一般是访问到了不能访问的内存. 个人碰到几种情况: Array-out-of-bounds error:数组越界 Stack ov ...

  4. 简单Access Violation的异常派发,Vista/Longhorn Server

    以前就发现LH的Exception Handling有变化.当程序崩溃后,程序会被系统挂在发生问题的汇编代码上,这样直接用调试器上去就可以看了.当时一直想研究下具体怎么实现的.另外在<Windo ...

  5. access violation reading 0x0000000000000020

    access violation reading 0x0000000000000020 原因: 再次使用之前应该先释放一下内存: av_freep(aviobuffer); //printf(&quo ...

  6. exception: access violation reading 0xFFFFFFFFFFFFFFFF

    exception: access violation reading 0xFFFFFFFFFFFFFFFF 原因:内存释放的时候出了问题,可能是释放过了. av_freep(aviobuffer); ...

  7. OSError: exception: access violation writing and reading

    OSError: exception: access violation writing 0x0000000000000000 原因:pFormatCtx 么有分配内存 //pFormatCtx = ...

  8. OSError: exception: access violation reading 0x0000000000000001

    File "D:\Users\Administrator\Miniconda3\envs\python36\lib\ctypes\__init__.py", line 492, i ...

  9. Unhandled exception 0xC0000005: Access violation writing location

    vs2010 出现文件无法写入的问题,下列代码中每当运行<< 时会出错,错误提示如题: Unhandled exception 0xC0000005: Access violation w ...

  10. CFileDialog 在使用sdk 后出现异常 Access violation

    /*************************************************************************************************** ...

最新文章

  1. Hadoop + HBase (自带zookeeper 也可单独加) 集群部署
  2. 数据科学+python+R+数据库+机器学习+(速查表)cheat sheets大全
  3. 华东师范大学2019年高等代数考研试题
  4. python多条件排序
  5. 五丶阿东安装部署教程+青龙对接阿东及傻妞实现自动登录
  6. STM32使用J-LINK下载HEX文件
  7. wifi 2.4g 5g 区别_wifi信号差,网速慢?可能是你没有配置好2.4G和5G WiFi
  8. 分布式机器学习_229页,CMU博士张昊毕业论文公布,探索机器学习并行化的奥秘...
  9. 430单片机实现三人投票表决器_长虹KFR-28变频空调器室内机控制板电路原理分析...
  10. 甲流疫情死亡率(信息学奥赛一本通-T1011)
  11. Java面试八股文(素材来自网络)
  12. c语言printf()输出格式大全(转载)
  13. PS/PR/AE全套插件一键安装包无需注册码
  14. MAE 代码实战详解
  15. 微信发红包api php,php版微信公众号接口实现发红包的方法
  16. 用citespace对知网文献的关键词分析结果很少如何解决?
  17. 华为云虚拟服务器,云服务器是虚拟主机
  18. Validator检验框架的使用
  19. 【C++习题笔记】谭浩强C++程序设计(第三版)第七章
  20. 我的世界java版怎么选择版本_《我的世界》游戏版本太多,玩家该如何选择?听听老玩家怎么说...

热门文章

  1. 2022登高架设考题及在线模拟考试
  2. 互联网著作权行政保护办法 信息网络传播权保护条例
  3. 转 --- 恢复误删数据
  4. python--打印星星
  5. 校外培训机构被叫停,中止营业,这属于营业中断险的保障范围吗?
  6. c++实现PCA(BIL, BSQ, BIP三种格式数据)
  7. layui实现导航栏目
  8. 电路图中的那些类似于箭头的是什么意思?
  9. python温度转换代码示例_python温度转换华氏温度实现代码
  10. 12.3 收敛级数的性质