有没有办法解除分配在堆栈上创建的变量和/或对象?我特别谈论堆栈而不是堆.
我不想辩论这是否有用或好的做法,我只需要知道它是否可行.
我知道当它超出范围时会自动解除分配.我想在它超出范围之前解除分配.
我正在使用C++.
Xeo*_*Xeo 10
{
int a;
} // 'a' "deallocated" here
Run Code Online (Sandbox Code Playgroud)
你无法摆脱a封闭范围的结束.
每次从函数返回时,该函数在堆栈上分配的任何内存都会被释放。如果由于某种原因需要缩小变量的范围,您可以通过创建一个带有{}.
void function(void)
{
int x;
{
int y;
} // scope of y ends
} // scope of x ends
Run Code Online (Sandbox Code Playgroud)