Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在什么情况下,在控件到达main()函数之前会发生崩溃?_C++ - Fatal编程技术网

C++ 在什么情况下,在控件到达main()函数之前会发生崩溃?

C++ 在什么情况下,在控件到达main()函数之前会发生崩溃?,c++,C++,可能重复: 您好,在什么情况下,应用程序在控件到达主功能之前崩溃? 到目前为止,我的理解是:全局和全局静态初始化发生在main之前。所以,若初始化的顺序不正确,那个么当使用未初始化的指针时,可能会导致崩溃等 可能的解决方案:使用函数获取静态指针值,以便它们可以初始化并返回正确的指针 我读到了与之稍有相似的文章 我想了解更多信息。 这样的崩溃还有其他情况吗? 避免此类崩溃的解决方案是什么?在调用main之前,全局对象和静态类数据成员的构造函数已被调用。如果这些构造函数崩溃,则程序在调用main

可能重复:

您好,在什么情况下,应用程序在控件到达主功能之前崩溃? 到目前为止,我的理解是:全局和全局静态初始化发生在main之前。所以,若初始化的顺序不正确,那个么当使用未初始化的指针时,可能会导致崩溃等

可能的解决方案:使用函数获取静态指针值,以便它们可以初始化并返回正确的指针

我读到了与之稍有相似的文章

我想了解更多信息。 这样的崩溃还有其他情况吗?
避免此类崩溃的解决方案是什么?

在调用main之前,全局对象和静态类数据成员的构造函数已被调用。如果这些构造函数崩溃,则程序在调用main之前崩溃。这是避免参加全球比赛的众多好理由之一


如果您被许多全局变量所困扰,您可以通过将断点或调试输出放入它们的构造函数来调试它们。依赖性问题可以通过将全局变量转换为函数局部静态变量来解决,这些静态变量是在首次使用时构造的

全局对象和静态类数据成员在调用main之前调用了它们的构造函数。如果这些构造函数崩溃,则程序在调用main之前崩溃。这是避免参加全球比赛的众多好理由之一

如果您被许多全局变量所困扰,您可以通过将断点或调试输出放入它们的构造函数来调试它们。依赖性问题可以通过将全局变量转换为函数局部静态变量来解决,这些静态变量是在首次使用时构造的

如果您使用的全局成员过大,耗尽了可用内存,则程序将在主操作系统启动之前崩溃或被操作系统杀死

如果您的程序与具有初始化代码的动态库链接,则该代码可以在main之前运行,具体取决于您的操作系统。那个代码可能会崩溃

当它故意崩溃时,许多其他的脑死案例

如果您使用的全局成员过大,耗尽了可用内存,则程序将在主操作系统启动之前崩溃或被操作系统杀死

如果您的程序与具有初始化代码的动态库链接,则该代码可以在main之前运行,具体取决于您的操作系统。那个代码可能会崩溃

当它故意崩溃时,许多其他的脑死案例


你的大部分问题都是你已经给了自己的。 但这里有一些额外的信息:

VisualC++中的P>可以用“

”控制初始化顺序。
#pragma init_seg(...)
在gcc中是这样的:

__attribute__ ((init_priority (2000)))

您现在可以阅读有关详细信息的相应文档。

您已经向自己提供的大部分问题。 但这里有一些额外的信息:

VisualC++中的P>可以用“

”控制初始化顺序。
#pragma init_seg(...)
在gcc中是这样的:

__attribute__ ((init_priority (2000)))

您现在可以阅读有关详细信息的相应文档。

解决方案:不要使用全局变量。解决方案:不要使用全局变量。