_BLOCK_TYPE_IS_VALID(pHEAD->nBlockUse) 错误

_BLOCK_TYPE_IS_VALID(pHEAD->nBlockUse) error

本文关键字:gt nBlockUse 错误 pHEAD- BLOCK TYPE IS VALID      更新时间:2023-10-16

我是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:pathtoexecutablemain.exe
File: f:ddvctoolscrt_bldself_x86crtsrcdbgdel.cpp
Expression: _BLOCK-TYPE_IS_VALID(pHead->nBlockUse)

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

正如Oli Charlesworth所说,你没有动态分配numberPtr,因此你不能delete它。如果您打算在C++中编码,我建议阅读newdelete以及动态内存分配。