c++使用assert()断言之后,后面的变量所占用的内存是怎么清理的哦?
本文介绍了c++使用assert()断言之后,后面的变量所占用的内存是怎么清理的哦?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
#include <assert.h>
#include <cstdio>
int main()
{
int a = 1;
assert(a < 1 && "wrong here");
printf("come here\n");
int b = 2;
return 0;
}
代码如上。。请问在一段程序中,如果中途使用assert(),然后程序直接中断了,那么在assert后面的那些变量是怎么清理的哦?
解决方案
没清理, assert实际上没有返回,程序立马就中断了. 程序中断后, 操作系统回收了这个进程的所有资源. 在操作系统的严重, 并不能分辨出来a和"wrong here"到底是什么东西, 无非是一块内存而已.
这篇关于c++使用assert()断言之后,后面的变量所占用的内存是怎么清理的哦?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文