询问assert在监视acess violation的应用

more_chan 2005-03-21 01:49:06
最近在学用C++编一些程序,在内存访问的程序中经常会遇到访问越界的问题,听说可用assert实现监视,查过msdn,但感觉参考意义不大,在此请教各位大虾能给出个实例吗?顺便问下,需要包含什么头文件之类吗?
在此先谢过了!
...全文
60 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
more_chan 2005-03-21
  • 打赏
  • 举报
回复
多谢各位了!
oyljerry 2005-03-21
  • 打赏
  • 举报
回复
assert()断言宏,需要表达式为true,否则出错
Salam2001 2005-03-21
  • 打赏
  • 举报
回复
#include <cassert> //标准头文件
using namespace std;

assert( expression );

在这里你告诉编译器让它给你"断言" expression 一定是 true.
如果,expression 是 false,那么“断言”失败,就会出现错误提示。
for example:

int foobar( int a, int b )
{
assert( b != 0 );
return a / b;
}

如果,b == 0 那么断言失败,出现错误提示。
gnixemos 2005-03-21
  • 打赏
  • 举报
回复
在debug下
#include <assert.h>

int a = 100;
assert(a > 0);


运行没有问题

如果a = -1;

则会有一个系统提示框,条件不满足的情况

所以
比如访问空指针
可以这样防止
assert(ptr);

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧