C++ 在什么情况下,在控件到达main()函数之前会发生崩溃?
可能重复: 您好,在什么情况下,应用程序在控件到达主功能之前崩溃? 到目前为止,我的理解是:全局和全局静态初始化发生在main之前。所以,若初始化的顺序不正确,那个么当使用未初始化的指针时,可能会导致崩溃等 可能的解决方案:使用函数获取静态指针值,以便它们可以初始化并返回正确的指针 我读到了与之稍有相似的文章 我想了解更多信息。 这样的崩溃还有其他情况吗?C++ 在什么情况下,在控件到达main()函数之前会发生崩溃?,c++,C++,可能重复: 您好,在什么情况下,应用程序在控件到达主功能之前崩溃? 到目前为止,我的理解是:全局和全局静态初始化发生在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)))
您现在可以阅读有关详细信息的相应文档。解决方案:不要使用全局变量。解决方案:不要使用全局变量。