- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我遇到了这个问题:
调试断言失败!
文件:f:\dd\vctools\crt_bld\self_x86\crt\dbgdel.cpp
第 52 行
表达式“_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)
我的程序正确地将所有值返回到我期望的屏幕,但是这个问题让我紧张...
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
double * wsk1;
double * wsk2;
double * wsk3;
double * kopiowanie(double *wsk1,double *wsk2, double *wsk3);
double * zaladuj(double *wsk1,double*wsk2);
int main()
{
wsk1 = new double [30]; // tak inicjalizuje sie dynamicznie tablice
wsk2 = new double [30];
wsk3= new double [30];
zaladuj(wsk1,wsk2);
kopiowanie(wsk1,wsk2,wsk3);
for (int i=0;i<30;i++)
{
cout << setw(10) << *wsk1 << setw(10) << *wsk2 << setw(10) << *wsk3 << endl;
wsk1++;
wsk2++;
wsk3++;
}
wsk1 -=29;
wsk2 -=29;
wsk3 -=29;
delete[] wsk1;
delete[] wsk2;
delete[] wsk3;
system("pause");
}
double * zaladuj(double * wsk1, double * wsk2)
{
for(int i=0;i < 30;i++)
{
*wsk1 = i;
*wsk2 = i;
wsk1++;
wsk2++;
}
wsk1 -=29 ;
wsk2 -= 29;
return wsk1, wsk2;
}
double * kopiowanie(double *wsk1,double*wsk2, double*wsk3)
{
for(int i=0; i<30;i++)
{
*wsk3 = (*wsk1) * (*wsk2);
wsk3++;
wsk2++;
wsk1++;
}
wsk1 -=29;
wsk2 -=29;
wsk3 -=29;
return wsk1,wsk2,wsk3;
}
最佳答案
这是一个内存损坏错误,它的发生是因为您正在删除
您没有新建
的东西。
这段代码是错误的:
wsk1 -=29;
wsk2 -=29;
wsk3 -=29;
您有 30 次循环迭代,这意味着对 ++
的调用有 30 次,这意味着您还需要 -= 30
。
当你弄错时,你传递给 delete
的指针是不正确的。
此外,return wsk1, wsk2;
并没有按照您的想法执行,并不是说您无论如何都在使用这些函数的返回值。
关于c++ - 调试断言失败_BLOCK_TYPE_IS_VALID(pHead->nBlockUse),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22211951/
在 C++ 中的以下代码: class Foo { vector otherFoos; }; int _tmain(int argc, _TCHAR* argv[]) { Foo* dat
我有一个代码,我需要在其中分配一个指向指针数组的指针,但是当我想安全地删除它时,调试器给我错误。 我知道我不应该使用指针的指针数组,而应该使用 vector 类,但我不得不这样做。我有两个类(clas
我正在尝试释放动态内存,但出现错误。我需要一些帮助来指出我的代码的哪一部分导致了错误。 我有析构函数来释放两个动态数组。删除析构函数我没有错误。 错误:_BLOCK_TYPE_IS_VALID(pHE
免责声明:这是一项家庭作业。我们必须创建一个使用类对象来保存数字的计算器。我们有一个名为 Element 的类,它进入数据库并包含一个名为 Container 的类,该类存储数字数据。 我在这段代码中
当我在 Debug模式下构建可视化 C++ 项目时,只需两行代码 TEnviron * fk = new TEnviron(); delete fk; 它从 _CrtIsValidHeapPointe
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我在这里查看了类似的问题,但仍然无法意识到我做错了什么。请帮忙。 我需要为大小有限的字符串类制作模板(就像在 Pascal 中一样)代码如下:http://pastebin.com/syZf3yM8
首先,我将向您展示我的代码。 std::ifstream file("accounts/22816.txt"); if(file){ char *str[50]; int count=0;
我有一个错误“_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)”,我不知道该怎么办.. person.h #ifndef _person_H #define _person
这个问题在这里已经有了答案: What is The Rule of Three? (8 个答案) 关闭 8 年前。 我知道这是一个常见错误,所以我尝试创建一个最小示例。我认为这是因为我试图释放堆栈
我在下面代码的最后一行遇到错误“_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)”: pixelCoorindateAndThreePoint* tempSpace = n
这个问题在这里已经有了答案: What is the behavior of "delete" with stack objects? [duplicate] (1 个回答) 关闭 6 年前。 我是
class A { public: void doSomething() {} } boost::unordered_map> m; m.insert(0, new A()); m.inser
我正在尝试修复一个非常严重的内存泄漏,但不知何故我无法在不触发此断言的情况下删除对象。 我已通过 Google 搜索了解决方案,并已阅读有关此错误的 Stackoverflow 上的问题,但我仍然无法
我一直在从事一个新项目,但遇到了一个我不知道为什么会失败的问题。 当我执行此行删除 textY 时,给我错误 _Block_Type_Is_Valid (pHead->nBlockUse)。那我做错了
我想弄清楚为什么我的程序在运行时会失败。到目前为止,当我运行我的程序时,它对我失败了。我调试了错误,它把我带到了 dbgdel.cpp。第 32 行“_ASSERTE(_BLOCK_TYPE_IS_V
我正在编写一个类似于电影信息系统的程序。我是 C++ 的初学者。 每次编译后我都会收到此错误警报消息。我确信在 detructor 调用时它会出错。 我阅读了很多与此错误相关的帖子。但我还是忍不住。我
我不知道为什么我总是收到 _Block_Type_Is_Valid (pHead->nBlockUse) 错误。我知道这通常是因为我双重删除了一些东西但我只在代码中使用了一次删除。以下是代码。 Box
我已经在这段代码上工作了一段时间,试图用测试床 main 测试我的 Company 类。我得到了我想要的所有结果,但是在完成主要功能后程序崩溃了 this message:(我很抱歉,但我是新来的,我
我知道有几篇关于此错误的帖子,但它们都是针对特定情况的。我正在制作一个文件拆分/连接器,它具有以下要求:-用户必须输入文件名/输入路径和输出文件夹。我用将原始文件拆分为 N 部分(用户必须输入)的基本
我是一名优秀的程序员,十分优秀!