_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)错误
来源:互联网 发布:mysql offset 效率 编辑:程序博客网 时间:2024/05/29 18:33
#include "stdafx.h"#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){double *p3 = new double [3];p3[0] = 0.2;p3[1] = 0.5;p3[2] = 0.8;cout << "p3[1] is " << p3[1] << endl;p3 = p3 + 1;cout << "p3[1] is " << p3[1] << endl;//p3 = p3 - 1;delete [] p3;cin.get();return 0;}
这段代码是C++ primer plus上的,以为这个代码段很简单,照着敲后,运行没问题,突发奇想,把p3 = p3 -1 注释掉后,运行直接报_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)错误,查找了下资料,得出如下结论:
当试图删除一片连续内存块中的特定对象时,会出现上面的Assertion Failed!连续内存区域只能对该块内存的起始地址进行删除!如:
int *p = new int[5];delete (p + 2); // 试图删除第3个int对象,错误
delete[] p;
所以,如果在一个函数中生成对象,而在其他函数中使用并删除时,需要将该内存区域的起始地址保存起来,可以保存到全局变量、或Window对象中(如SetWindowLong(hwnd, GWL_USERDATA, (LONG) youdata))等。如果想删除该内存区域,先将该内存区域的首地址取出来再删之!
心得: 再简单的程序都要手动敲一遍,说不定就会发现知识漏洞,代码是敲出来的
0 0
- _BLOCK_TYPE_IS_VALID(phead->nBlockuse)错误
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)错误
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse) Exception
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse
- VS _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
- Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse问题解析
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse问题解析
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse问题解析
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse问题解析
- 【Debug】_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
- Debug Assertion Failed.Expression:_BLOCK_TYPE_IS_VALID(phead->nBlockUse)
- 内存值异常:_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse))
- Adapter
- 最好用php环境安装包----AppServ 2.6.0
- 障碍器
- 饭卡 HDU杭电2546 【0-1背包】
- 日经社説 20150827 中国発の市場動揺に警戒怠るな
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)错误
- MySQL中可为空的字段设置为NULL还是NOT NULL
- PS学习笔记------图层样式
- js json转excel
- android 学习笔记 播放音频 和视频
- Sublime Text3 快捷键汇总及设置快捷键配置环境变量(转)
- Android 离线播放 (HLS)m3u8文件
- Ubuntu配置FTP,SSH,NFS服务
- 2015.6.15(nut-console结合SpringMVC)