相关疑难解决方法(0)

_Block_Type_Is_Valid(pHead-> nBlockUse)错误

我一直在一个新项目工作,但我遇到一个问题,我不明白为什么失败.

当我执行此行时删除textY给我错误_Block_Type_Is_Valid(pHead-> nBlockUse).那么我做错了什么?

这是源代码:

Text.h

 #ifndef TEXT_H
 #define TEXT_H

typedef boost::shared_ptr<Font>  FontPtr;

class Text
{
public:

    Text(FontPtr font, char *text)
    {
        str = new char[35];
        this->font = font;    str = text; 
    }

    Text(const Text& cSource);
    Text& operator=(const Text& cSource);

    ~Text();
    .
    .
    .
    .

private:
    FontPtr font;
    char *str;
    GLuint texture;
    GLfloat pos_x, pos_y, width, height;
};

 #endif 
Run Code Online (Sandbox Code Playgroud)

Text.cpp

Text::Text(const Text& cSource)
{
    font = cSource.font;
    texture = cSource.texture;
    pos_x = cSource.pos_x;
    pos_y = cSource.pos_y;
    width = cSource.width;
    height = …
Run Code Online (Sandbox Code Playgroud)

c++ debugging pointers sdl visual-c++

18
推荐指数
2
解决办法
6万
查看次数

C++对象作为返回值:复制还是引用?

我想测试当函数的返回值是一个对象时C++的行为.我做了一个小例子来观察分配了多少字节,并确定编译器是否复制了对象(比如当对象作为参数传递时)或者返回某种引用.

但是,我无法运行这个非常简单的程序而且我不知道为什么.错误说:"某些dbgdel.cpp文件中的"调试断言失败!表达式:BLOCK_TYPE_IS_INVALID".Project是一个win32控制台应用程序.但我很确定这段代码有问题.

class Ctest1
{
public:
   Ctest1(void);
   ~Ctest1(void);

   char* classSpace;
};

Ctest1::Ctest1(void)
{
   classSpace = new char[100];
}

Ctest1::~Ctest1(void)
{
   delete [] classSpace;
}

Ctest1 Function(Ctest1* cPtr){
   return *cPtr;    
}

int _tmain(int argc, _TCHAR* argv[])
{
   Ctest1* cPtr;

   cPtr=new Ctest1();


   for(int i=1;i<10;i++)
      *cPtr = Function(cPtr);


   delete cPtr;

   return 0;
   }
Run Code Online (Sandbox Code Playgroud)

c++ memory return object

10
推荐指数
3
解决办法
1万
查看次数

Debug Assertion失败OpenCv is_block_type_valid(header - > _ block_use)

我是使用Visual Studio和openCv编程的新手.我写了一个简单的程序来显示图像的红色通道,但每次运行代码时都会抛出"DEBUG ASSERTION FAILED"错误.

#include <opencv2\imgproc\imgproc.hpp>
#include <opencv2\highgui\highgui.hpp>

#include <iostream>

using namespace std;
using namespace cv;

int main() {
    Mat image;
    image = imread("C:/Users/siddartha/Pictures/sample.jpg");
    if (!image.data) {
        cout << "Cannot load image";
        return -1;
    }
    else {
        if (image.channels() >= 3) {
            vector<Mat> rgb;
            split(image, rgb);
            namedWindow("r");
            imshow("r", rgb[0]);

        }
    }
    while (1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误:

Debug Assertion Failed!

Program: ...sual Studio 2015\Projects\sampleOpenCV\Debug\sampleOpenCV.exe
File: minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp
Line: 892

Expression: is_block_type_valid(header->_block_use)
Run Code Online (Sandbox Code Playgroud)

错误窗口

c++ opencv visual-studio-debugging visual-studio-2015

4
推荐指数
1
解决办法
1万
查看次数

表达式:_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)错误

在运行时发生此错误,我不确定是什么导致它 - 代码对我来说是正确的.

#include <iostream>
#include <string>

using namespace std;

struct Room {
    int d_noSeat;
    bool d_hasProjector;
    Room() = default;
    Room(const Room& r);
};

class Event {
    Room* d_room;
    std::string d_name;
public:
    Event();
    Event(const Event& e);
    ~Event();
    void set(Room r, const std::string& name);
    void print();
};

Event::Event() : d_room(0), d_name("") {};

void Event::print() {
    std::cout << "Event: " << d_name;
    if (d_room != 0) {
        std::cout << " in size " << d_room->d_noSeat;
        if (d_room->d_hasProjector)
            std::cout << " with";
        else …
Run Code Online (Sandbox Code Playgroud)

c++ runtime-error class deep-copy shallow-copy

3
推荐指数
1
解决办法
2万
查看次数

为什么我会得到 _CrtIsValidHeapPointer(block) 和/或 is_block_type_valid(header-&gt;_block_use) 断言?

当我在调试模式下使用 VisualStudio 编译程序运行我的程序时,有时我会得到

调试断言失败!表达:_CrtIsValidHeapPointer(block)

或者

调试断言失败!表达:is_block_type_valid(header->_block_use)

(或两者之后)断言。

这是什么意思?如何找到并修复此类问题的根源?

c c++ debugging visual-c++

2
推荐指数
1
解决办法
852
查看次数