繁体   English   中英

使用typedef结构从不兼容的指针类型进行赋值

[英]assignment from incompatible pointer type using a typedef struct

通常,当我收到此类错误消息时,这意味着该结构从代码中隐藏了,因此,我无法直接使用该结构的变量。

在这种情况下,该结构在同一C文件中定义。

我将C文件粘贴到了http://bpaste.net/show/224777/

在第330行,我有以下代码:

TrackBoxWidget *track_box_widget_new(GtkWidget *track_data_widget,GVariant *audio_in_devices) {
// can add more parameters here
TrackBoxWidget *widget = g_object_new(TRACK_BOX_WIDGET_TYPE,"audio_in_devices", audio_in_devices,NULL);
/*LINE 330*/    widget->track_data_widget=track_data_widget;
...

如您所见,我正在尝试在小部件TrackBoxWidget typedef中设置track_data_widget变量。 而且我仍然会收到此错误。

有任何想法吗?

在任务的左侧,您有widget->track_data_widget ,它是TrackBoxWidget (也称为struct _track_box_widget )的成员,类型为TrackDataWidget*

在任务的右侧,您具有track_data_widget ,它是track_box_widget_new函数的参数,类型为GtkWidget* 由于两个指针的类型不同,因此如果不进行强制转换,则不允许在它们之间直接分配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM