_BLOCK_TYPE_IS_VALID(pHead->nBlockUse error Visual Studio 2012
_BLOCK_TYPE_IS_VALID(pHead->nBlockUse error Visual Studio 2012
当我尝试删除指针内存时,我收到_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)错误。我已经检查了代码中的其他地方,似乎没有双重删除。
任何人都可以指导..
enum SHAPE_TYPES {RECTANGLE, TRIANGLE, CIRCLE};
map<SHAPE_TYPES,vector<Shape *>> shapeMap;
vector<Shape *>rectVector;
shapeMap.insert(pair<SHAPE_TYPES, vector<Shape*>>(RECTANGLE,rectVector));
map<SHAPE_TYPES,vector<Shape *>>::iterator mapIter;
mapIter = shapeMap.find(RECTANGLE);
if (mapIter != shapeMap.end())
{
// create the shape
RandomAttributes(R[shapes]);
// the key was found, so add data
shapePtr = R;
mapIter->second.push_back(shapePtr);
}
后来
map<SHAPE_TYPES,vector<Shape *>>::iterator mapIter;
mapIter = shapeMap.find(RECTANGLE);
if (mapIter != shapeMap.end())
{
if ( !mapIter->second.empty() )
{
mapIter->second.back()->Draw();
delete mapIter->second.back(); // -- error causing line
mapIter->second.pop_back();
}
}
你的代码至少有一个,也许两个(或更多)问题。
第一个问题是R
是一个数组,数组在编译时由编译器静态分配。你不应该delete
它。只delete
你new
的,delete[]
你new[]
的。如果你使用std::array
或std::vector
,并且你可以使用简单的赋值,数组(或向量)将被复制,为什么要有一个旧的 C 样式数组。
还有一个可能的问题,如果你的数组是在函数中本地定义的,然后在另一个函数中使用指向它的指针。这是因为局部变量是定义它的函数(或函数内的块)的局部变量。一旦代码离开块,局部变量就会被定义,然后它就会被破坏,如果你有一个指向它的指针,指针就会变得杂散并指向不再存在的数据,从而导致使用它时出现未定义的行为。
相关文章:
- "error: no matching function for call to"构造函数错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- C++ "error: invalid use of void expression"
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 从不同目录执行时"symbol lookup error:",否则从构建目录执行时按预期工作
- 对象声明中的模板"error: expected expression"
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- OpenCV 3.4.1 error readNetFromTensorflow 无法在 cv::d nn::ReadProtoFromBinaryFile 中打开 .pb
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- 为什么我会"error: expected expression"?
- CMake Error at modules/videoio/cmake/detect_ffmpeg.cmake:16
- 如果两个静态库使用相同的另一个静态库,如何避免"LNK2005 Already Defined error"?
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse error Visual Studio 2012