iam*_*ind 2 x86 segmentation-fault lazy-initialization data-segment
static存储在编译时决定.但是,请考虑我们在函数中进行大量延迟初始化的情况:
void foo ()
{
static int a[1000];
}
Run Code Online (Sandbox Code Playgroud)
我不是在讨论这里的编码实践,而是讨论技术方面.由于执行了许多其他类似 foo()的功能,static因此将在数据段上引入这些许多变量.
在为数据段分配空间时,编译器是否也会在帐户中进行延迟初始化.如果'否'那么,它会在代码执行时在运行时导致分段错误吗?(当方法static内部有大量数据时更有可能发生template).