访问冲突读取位置0xcccccccc

问题描述:

我想在openCV 2.2中运行squares.cpp示例。代码编译和构建,而不在Visual Studio 2008中的错误但是当我运行可执行文件(即在运行时)我得到一个错误,指出访问冲突读取位置0xcccccccc

Unhandled exception at 0x004ac363 in OpenCVRectangle.exe: 0xC0000005: Access violation reading location 0xcccccccc.

这发生在定义:
vector<vector<Point> > squares; 在主要功能

有人可以帮助,为什么会发生这种情况? 我发现值0xcccccc通常是一个未初始化或变量,但不明白为什么我在这一行得到这个异常。

完整的示例代码可以在http://pastebin.com/MTaXVcQz

+0

0xCCCCCCCC是未初始化的内存[时候和为什么会操作系统初始化内存0XCD,0xDD等上的malloc /自由/新/删除?](http://stackoverflow.com/q/370195/995714 ) – 2015-04-28 15:44:35

您的代码在OpenCV 2.3.0的Mac OS X上运行良好,但已知OpenCV在不同的操作系统中呈现不同的行为。

  • 首先,检查您的代码在Release和Debug版本中是否都存在此问题。

  • 升级到OpenCV 2.3.1 on Windows并查看问题是否消失。

在您链接到的代码namedWindow发现是不在这个范围看定义的函数。它可能是它试图解释为一个尚未定义的变量,而不是一个函数。我想说它可能缺少某种图书馆?很难说没有进一步的背景下,但vector<vector<Point> > squares;应该不是是违反。

在VS中按Ctrl + Alt + E,启用所有异常检查,在调试模式下运行并查看异常升级的位置。这应该足以理解。