对于这样的运行时错误,你可能会抓狂。我今天在编写MFC程序时遇到了这样的错误,解决这个问题花了我一个多小时的时间,最后才定位到错误。

首先解释一下这种错误,意思是:违反规则访问地址为0x00000038的内存,并且你没有处理这个异常。

一般来说,这种错误产生的原因是:你使用了没有初始化的指针,或者说你初始化NULL,但它没有被赋予实际的值。例如:View*pView=NULL; pView->Update();此时你便会遇到这种错误。你要想解决这种错误,就要找到它的位置。对于MFC程序,你肯定是因为触发了某个事件,才产生了这种错误。你首先要找到与该事件相关联的函数,然后在此处设置断点。然后你就F10,F10,F10就行了。直到错误重新产生。现在你就找到了错误的大概位置。如果这个位置就是你要找的,你解决它就行了,如果不是,那么它应该就是一个函数了。这是你改变断点到此,然后F11进去,继续就行了。一般来说,这种错误这样很容易就找到了错误的原因,但是今天我遇到了一种情况。错误产生在SendMessage()这个函数在,这就麻烦了,因为SendMessage()是直到消息处理完了,它才结束。这时你就要用到错误产生时,它给你定位的地址了,你将断点直接设到这个位置。然后顺着它往前找,或者你可以利用Call Stack来慢慢寻找。希望你可以解决你自己的问题。

以上内容转自:http://hi.baidu.com/supermain/blog/item/7d8240ee133375dd2e2e210b.html

今天遇到的问题是

for(i = m_cUndo.GetSize() - 1; i >= m_nCurUndo; i--)
 {
  delete m_cUndo[i];
  m_cUndo.RemoveAt(i);
 }     这是修改bug后添加的,就是将m_cUndo置空,使它里面的数据为空.如果不加,就成了野指针了.

m_cUndo.Add(new CUndoViaExtending(dlg.pExtendedVias, dlg.nExtendedVias, dlg.pAddedNodes, dlg.nAddedNodes));

///以下为消息响应函数

void CViaExtending::OnUndo()
 {
  m_nCurUndo--;
  memmove(m_bLayerFlags, m_cOriginal[m_nCurUndo], m_nMaxLayerIndex + 1);
  LVITEM lvItem;
  lvItem.mask = LVIF_IMAGE;
  lvItem.iSubItem = 0;
  for(int i = 0; i <= m_nMaxLayerIndex; i++)
   {
 lvItem.iItem = i;
 lvItem.iImage = m_bLayerFlags[i];
 m_List.SetItem(&lvItem);
   }
  m_cUndo[m_nCurUndo]->UndoObject(m_pView);
  if(m_nCurUndo < 1)
   m_Undo.EnableWindow(FALSE);
  m_Redo.EnableWindow(TRUE);
 }
当点击两次Undo按钮时程序Crash了!(具体如何操作就不说了)

原因是当点击第二次按钮时,使用了delete了的m_Undo类. 并且没有将它置空,就又使用了.里面涉及了野指针的内容.

Access violation reading location 0x000000XX相关推荐

  1. OpenCV特征检测出现Unhandled exception at……Access violation reading location 0x00000000.

    OpenCV版本为2.4.12,Visual Studio 开发环境中运行. 在图像特征检测.匹配中出现了运行错误: Unhandled exception at 0x569D1C00 (opencv ...

  2. Access violation reading location 0xccccccc0运行异常的解决方法

    转自:http://blog.csdn.net/michealmeng555/article/details/6452697 编译过运行时出现如下错误 Access violation reading ...

  3. Unhandled exception at 0x........ in XXXX.exe: 0xC0000005:Access violation reading location 0x......

    Unhandled exception at 0x........ in XXXX.exe: 0xC0000005:Access violation reading location 0x...... ...

  4. C/C++ error/exception throw: access violation reading location 0x....;

    [问题背景]问题现象如下图: [问题分析]这类问题,概括的说对基本由于指针未正确使用(申请或者释放过程中产生问题)而导致. [01]像我产生这个错误时,看自己的代码哪里都好的,检查的检查了,异常的处理 ...

  5. Unhandled exception at 0x00291422 in x.exe: 0xC0000005: Access violation writing location 0x37ACCE08

    源码如下: #include<stdio.h> #include<string.h> #include<stdlib.h> //malloc所在库#define M ...

  6. First-chance exception at 0x000007FE86D99B3C in XXXX.exe: 0xC0000005: Access violation reading locat

    First-chance exception at 0x000007FE86D99B3C in XXXX.exe: 0xC0000005: Access violation reading locat ...

  7. access violation reading 0x0000000000000020

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

  8. exception: access violation reading 0xFFFFFFFFFFFFFFFF

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

  9. OSError: exception: access violation reading 0x0000000000000001

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

最新文章

  1. Spring中的Controller ,Service,Dao是不是线程安全的?
  2. 各种浏览器的userAgent
  3. UA MATH571A R语言回归分析实践 多元回归2 医疗费用的决定
  4. linux内核锁机制学习
  5. spring boot2.x整合redis
  6. SQL Server里一些未公开的扩展存储过程
  7. 外包公司到底值不值去?
  8. Leetcode之路径总和II
  9. GoLang 插件化开发
  10. 网站页面篡改及挂马的应急处置
  11. 英语3500词(20/20)dream主题(2022.4.30)
  12. 文献综述是什么,该怎么写?
  13. java将域名解析为IP地址,获取网卡的配置信息
  14. 圆周率 java编程_Java编程中实现计算圆周率的方法
  15. 《瘗旅文》 作者:王阳明(正德四年己巳作)
  16. 无线视频监控系统设计
  17. shell中大小写转换
  18. RAID磁盘阵列的几种模式
  19. PMP考试自学可以吗? 一分钟让你搞清楚
  20. Bia布刷题日记2022/2/17

热门文章

  1. systemd wsl 测试笔记
  2. hz什么梗_90hz屏幕什么意思
  3. 青岛理工大学 研究生 吴斌
  4. 养生之道——》早上刷牙干呕&&慢性烟炎
  5. dms mysql定义变量_数据管理DMS:自建MySQL数据库 全量SQL诊断功能发布啦!-阿里云开发者社区...
  6. 健身房小姐姐爆满了,我只用PR做了这一件事!
  7. kotterKnife+dagger2+otto+okhttp+picasso+retrofit+rxjava示例项目,使用kotlin编写。
  8. 自学编程的30岁男人,能按应届生那样找工作吗?
  9. 棕榈油增仓大涨,铁矿石认购上涨,豆粕09-01季节性正套2022.5.27
  10. wireshark IP地址域名解析