NotifyHeader.code 导致段错误

Posted

技术标签:

【中文标题】NotifyHeader.code 导致段错误【英文标题】:NotifyHeader.code results in segfault 【发布时间】:2014-08-22 13:39:17 【问题描述】:

我正在尝试使用 scintilla 从 sci-notify 信号中获取通知代码,但我遇到了段错误。这是我的代码:

void scinot(GtkWidget *s, SCNotification *notify, gpointer u)

    NotifyHeader nmhdr = notify->nmhdr;
    std::cout << nmhdr.code << std::endl;

【问题讨论】:

如果您想知道为什么没有 cmets 或回复:您提供的信息无法说明任何事情。查看***.com/help/mcve 或sscce.org 以获得一般建议。在实践中,您应该(至少)提供代码来显示 scinot() 函数的用途——例如如果它是一个信号处理程序,你需要展示你如何连接它以及你连接到什么。 【参考方案1】:

您的函数签名错误。根据the documentation,应该是这样的:

handler(GtkWidget *, gint, SCNotification *notification, gpointer userData)

(你错过了金特),让你的功能:

void scinot(GtkWidget *s, gint i,SCNotification *notify, gpointer u)

    NotifyHeader nmhdr = notify->nmhdr;
    std::cout << nmhdr.code << std::endl;

【讨论】:

以上是关于NotifyHeader.code 导致段错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥无限递归会导致段错误

QNetworkReply 导致段错误

提升信号量导致段错误

为啥这个非常简单的构造函数会导致段错误?

嵌套的 DirectConnection 信号导致段错误

为啥 PHP 中的无限递归函数会导致段错误?