获得SIGSEGV

时间:2016-12-22 03:07:33

标签: c++ qt

第一次使用stackoverflow。我试图重现我在互联网上找到的一个自定义标题栏的自定义无框窗口的例子。这是网站(我必须使用谷歌翻译才能用英语阅读)http://qt.developpez.com/tutoriels/braindeadbzh/customwindow/

我使用QT creator作为我的IDE运行ubuntu 16.04。我有最新的64位版本。

我已经完成了3.2并且在继续使用3.3之前我得到的SIGSEGV在它所说的行: 删除m_Cache;

在调试器中运行它时,一切都会编译出来,它出现在SIGSEGV中。 我知道这是一个超出范围的错误,但不知道为什么。任何建议或帮助将非常感激。

提前thx!

1 个答案:

答案 0 :(得分:2)

m_cache需要在构造函数中初始化为NULL(nullptr,如果使用C ++ 11及更高版本),否则它将保持未初始化状态,并且第一次到达delete m_cache行时将尝试删除垃圾地址。 (请注意,对NULL / nullptr指针调用delete是有效的,不执行任何操作)

ps:enfrançaisdansle texte:

  

注意:pensezàlaginiseràNULLle pointeur m_Cache dans le constructeur。