首页 > 代码库 > 堆异常检测-MS-Visual Studio
堆异常检测-MS-Visual Studio
- 在向系统申请堆空间的时候,虽然程序员不知道所申请的堆空间的数据结构,但是系统或者啥(微软可以知道)知道的,所以如果我们需要检查堆的使用异常,需要借助微软提供的机制来检堆的正常使用,从而发现在程序过程中出现的非法使用堆的情况,保证我们程序的高质量!
- 这里面最重要的函数莫过于_CrtCheckMemory(),该函数使用简单,在需要测试堆异常的代码的开始和结束端分别调用即可。具体例子如下所示:
#include <stdio.h> #include <Windows.h> #include <assert.h> #include <crtdbg.h> struct tvt { int i; char c; char a[]; }; void Test() { char* p = new char[4]; assert(_CrtCheckMemory()); strcpy(p, "12345"); assert(_CrtCheckMemory()); } int main() { Test(); return 0; }
- 其运行结果会提示异常,选择忽略之后,会显示如下错误:
// Assertion failed: _CrtCheckMemory(), file e:\code\win32\test1\main.cpp, line 17
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。