#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后面的那些变量是怎么清理的哦?
函数内的变量都是局部变量,变量的内存是在栈上分配的,对于a,b来讲,变量的内存就是一开始分配好的,如果从main函数正常退出,那么就正常释放,如果直接异常退出,也就没有清理的必要了。。
可以看看exit,return等函数退出程序的区别。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。