0x00007FF7C49A4C42 处有未经处理的异常:0xC0000005: 读取位置 0x000001481A2D86C4 时发生访问冲突
2017-08-09 09:57
597 查看
这个问题我最近遇到过几次,主要是在做特征点检测,或者有用到有数组或者向量的情况下,有可能会出现这种情况,可能出现这种问题的情况有很多,我现在说一下我发现的问题:
这几次出现这种问题基本都是溢出问题,比如一个向量他的大小为500,而你在访问的时候却访问了他的第501个元素,就会出现这种问题,但是这种问题比较难发现,因为程序写的没有问题,但是就是会蹦出来这种问题呀,我当时是一个一个去试,由于程序比较大,我会重新建立一个工程,然后把这个程序简化掉,然后再去找问题。下面我来举个栗子:
最开始的时候出现这个问题是下面这句代码:
我写了个很简单的例子,distance向量中最小的元素的位置是4,在这句代码中,我们访问m2向量时m2[position][3],也就是访问m2[4][3],但是实际上m2是没有第四行的,这个时候就会造成访问越界,就会出现读取位置是发生访问冲突。但是在实际运行中,nnn的值可能是随机的,这都有可能。
这几次出现这种问题基本都是溢出问题,比如一个向量他的大小为500,而你在访问的时候却访问了他的第501个元素,就会出现这种问题,但是这种问题比较难发现,因为程序写的没有问题,但是就是会蹦出来这种问题呀,我当时是一个一个去试,由于程序比较大,我会重新建立一个工程,然后把这个程序简化掉,然后再去找问题。下面我来举个栗子:
vector<Vec4i> m1,m2;//创建两个向量 m1.push_back(Vec4i(1, 2, 3, 4));//往向量里面加入数据 m1.push_back(Vec4i(3, 5, 8, 7)); m1.push_back(Vec4i(2, 8, 9, 7)); m2.push_back(Vec4i(1, 9, 6, 17));//同理 m2.push_back(Vec4i(37,45,126,32)); m2.push_back(Vec4i(4,5,96,21)); vector<double>distance;//同理 distance.push_back(2.236); distance.push_back(1.732); distance.push_back(2); distance.push_back(0.2358); distance.push_back(0.001); std::vector<double>::iterator minest = min_element(begin(distance),end(distance)); int position = std::distance(std::begin(distance), minest);//找出distance向量中最小的元素所在的位置 int nnn = m1[0][3] - m2[position][3];
最开始的时候出现这个问题是下面这句代码:
int nnn = m1[0][3] - m2[position][3];
我写了个很简单的例子,distance向量中最小的元素的位置是4,在这句代码中,我们访问m2向量时m2[position][3],也就是访问m2[4][3],但是实际上m2是没有第四行的,这个时候就会造成访问越界,就会出现读取位置是发生访问冲突。但是在实际运行中,nnn的值可能是随机的,这都有可能。
相关文章推荐
- 0x5afd57aa处有未经处理的异常:0xC0000005:读取位置0xcdcdcdc1时发生访问冲突
- 0x0F1AFD76 (libcocos2d.dll) (Plane.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000018 时发生访问冲突。
- (转载)0x0F1AFD76 (libcocos2d.dll) (Plane.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000018 时发生访问冲突。
- 0x00AE18F8 处有未经处理的异常: 0xC0000005: 读取位置 0x00000020 时发生访问冲突。
- 0x0fad13af (msvcr100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x00000002 时发生访问冲突
- 【C/C++】【FAQ】【内存泄露】未处理的异常:0xC0000005:读取位置0xabababab时发生访问冲突
- 中的 0x00833257 处有未经处理的异常: 0xC0000005: 读取位置 0x00000020 时发生访问冲突
- VS2012 msvcr110d.dll xxxxxx处有未经处理的异常:0xC0000005:写入位置xxxxxx时发生访问冲突(scanf_s引起)-已解决
- 未处理的异常:0xC0000005:读取位置0xabababab时发生访问冲突
- 由ShowWindow函数产生的“XX处未处理的异常:0xC0000005:读取位置0x00000020时发生访问冲突”
- ……处有未处理的异常:0xC0000005:写入位置……时发生访问冲突。
- 在调试时出现:~处有未经处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突
- MFC中关于m_pMainWnd = &dlg;处报错的解决方案,针对XX处未处理的异常:0xC0000005:写入位置0x00000020时发生访问冲突
- 有未经处理的异常: 0xC0000005: 读取位置 0xFFFFFFFC 时发生访问冲突
- Qt 数据库 0x00bf56f7 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
- xx.exe 中的 0x014180bd 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突(当指针访问异常时,应考虑是不是对象未创建)。
- 未处理的异常:0xC0000005: 读取位置 0xfeeefeee 时访问冲突
- 10_2_4.exe 中的 0x00b0d00a 处有未经处理的异常: 0xC0000005: 读取位置 0xccccccc0 时发生访问冲突
- XXX中的 0x77da15de 处未处理的异常: 0xC0000005: 读取位置 0x00000001 时发生访问冲突
- ...... 处有未经处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突