写入位置0x00460000时发生访问冲突,这是啥原因?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写入位置0x00460000时发生访问冲突,这是啥原因?相关的知识,希望对你有一定的参考价值。
参考技术A1. charname[10];
2. printf(" 请填写下列内容 \\n\\n");
3. printf(" 您的姓名 : \\n");
4. scanf_s("%s",name,10);
5. printf("\\n\\n 您好,%s。欢迎使用本软件! \\n",name);
6. system("pause");
7. return0;
--------------------------------------------------------------------------------------------
第4行&name改为name,并且注意scanf_s的用法第三个参数
http://baike.baidu.com/link?url=nfT3vQv_4sODLEq3vWseNxuflSLWL4P25qNW4ElY5tczPe3zGTY6nuyHSW9z9dX_JF1cWoGOSAGWR3geChWyLq
-----------------------------------------
第5行"您好,%s。"中与%s对应的是name
-----------------------------------------
第6行可以让你的程序暂停
0xC0000005: 写入位置 0x0000000002450040 时发生访问冲突
遇到这样的报错,没有其他提示,跳入汇编代码,瞬间傻了
可以查看调试中的代码图,查看调用的顺序,定位问题位置
如果代码图看见的全是地址,说明访问的地方已经销毁,具体在哪里,可以借助中断时候的线程窗口
黄箭头指向 当前运行到那个线程,对比你的线程ID,大概能确定在那个线程,然后在分析
LOG_INFO << "rtsp listen start!!! RtspPro() thread id is " << boost::this_thread::get_id();
一般说来是如下问题
1.空指针赋值
2.数组或者指针越界
3.指针没有初始化
4.访问已经析构的类的成员变量(尤其是线程里面访问)
以上是关于写入位置0x00460000时发生访问冲突,这是啥原因?的主要内容,如果未能解决你的问题,请参考以下文章
C语言:0xC0000005: 写入位置 0x00000000 时发生访问冲突。
0xC0000005: 写入位置 0x00000000 时发生访问冲突的解决办法(转)
处有未经处理的异常:0xC0000005:写入位置0x00EFA000时发生访问冲突.
(ntdll.dll)处引发的异常: 0xC0000005: 写入位置 0x00007FF6010E2278 时发生访问冲突 怎么办?
0x0F19B7EC (ucrtbased.dll)处(位于 ex6.exe 中)引发的异常: 0xC0000005: 写入位置 0x00740000 时发生访问冲突。