c++ - _BLOCK_TYPE_IS_VALID(pHEAD->nBlockUse) 错误

标签 c++ visual-studio visual-studio-2008 visual-studio-2013

<分区>

我是 C++ 的新手(我对 node.js 和 Java 最熟悉,但之前学过一些 Python)并且正在努力理解指针。以下示例在使用调试符号编译时生成运行时错误。

#include <iostream>

void main(){
    int number = 0;
    int * numberPtr = &number;
    * numberPtr = 1;

    std::cout << number;
    delete numberPtr;
}

错误信息:

Debug Assertion Failed!

Program: C:\path\to\executable\main.exe
File: f:\dd\vctools\crt_bld\self_x86\crt\src\dbgdel.cpp

Expression: _BLOCK-TYPE_IS_VALID(pHead->nBlockUse)

FWIW,当我同时使用 VS 2008 和 2013 进行编译时,我遇到了同样的错误。

最佳答案

正如 Oli Charlesworth 所说,您没有动态分配 numberPtr,因此您不能删除它。如果您打算使用 C++ 进行编码,我建议您阅读有关 newdelete 以及动态内存分配的内容。

关于c++ - _BLOCK_TYPE_IS_VALID(pHEAD->nBlockUse) 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24150809/

相关文章:

C++ 转换语法

c++ - 将 unsigned int 的指针传递给 long int 的指针

c++ - 用于移动应用(iOS、Android)的 Crypto++ 库的子集

c# - "Could not find type"在 Windows 窗体设计器中加载窗体时出错

asp.net - EntityFramework连接问题

c# - 编写 Visual Studio 插件?

c++ - 如何正确构建静态库?

c# - 在 C# 中调试 c++ dll

vb.net - 我如何加粗列表框中的项目?

javascript - Typescript Web 音频 API 缺少定义