while(true)
{
char array[1024] = {0};
....
.....
}
我只想知道在上面的代码条中是否会发生堆栈溢出,或者堆栈是否会在每个循环中展开。提前致谢。
最佳答案
具有自动存储持续时间的对象的生命周期是定义它的 block 。本例中的代码块从 while 循环的开始处开始,到结束处结束。所以理论上每次我们进入循环时都会重新分配对象。
但在实践中,编译器只会在循环之前甚至在函数开始时在堆栈上分配足够的空间,并且每次都使用它。
没有堆栈溢出的机会。
关于c - 静态数组在 while 循环中初始化。在这种情况下会发生堆栈溢出吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38218224/