局部变量脱离区域后为什么依然占用内存空间
#include <iostream>
using namespace std;
void main()
{
if(!0)
{
int a;
cout<<(int)&a<<endl; //1、 ---比如为1245052
}
int b;
cout<<(int)&b<<endl;//2、---比如为1245048
int c;
cout<<(int)&c<<endl;
}
大家可以看到在1的位置为1245052,理论上说a在脱离if体后,a在栈的内存会被释放调,为什么在2的位置居然输出不是1245052而是1245048,说明a还占用着内存。。。怎么解释。。
[解决办法]
其实电脑开机后物理内存的每个字节都是可读写的,区别仅在于操作系统内存管理模块在你读写时是否能发现并是否采取相应动作而已。
[解决办法]