MDo*_*vin 5 c++ memory arrays memory-leaks
可以说我有类似......
void foo()
{
char c[100];
printf("this function does nothing useful");
}
Run Code Online (Sandbox Code Playgroud)
当调用foo时,它会在堆栈上创建数组,当它超出范围时,内存是否会自动释放?或者是c被破坏了,但是内存仍然被分配,除了重新启动计算机之外无法访问它/取回它?
是自动解除分配的内存?
是.如果你想知道的话,也会调用析构函数.这就是他们在auto
matic存储类中的原因.
(实际上对于大多数架构,程序只会调用100个析构函数(如果有的话),然后将堆栈指针向后移动100*sizeof(T)
个字节作为"释放".)