2012-12-28 59 views
0

的结构分配ç

typedef struct Recording_Settings recording_settings; 
struct Recording_Settings 
{ 
    gchar *profile; 
    gchar *destination; 
}; 

recording_settings rec_settings; 

我得到一个警告,当我尝试这样做

static void profile_combo_change_cb(GtkComboBox *combo, gpointer userdata) 
{ 
    GtkTreeIter iter; 
    GtkTreeModel *model; 

    /* Grab the encoding profile choosen */ 
    model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); 
    if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(combo), &iter)) { 
     gchar *media_type; 
     gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &media_type, -1); 
     rec_settings.profile = rb_gst_get_encoding_profile(media_type); // Warning: assignment from incompatible pointer type 
     g_free (media_type); 
    } 
} 

我误解或失去了一些东西?

谢谢。

回答

0

类型的rb_gst_get_encoding_profile似乎

GstEncodingProfile *rb_gst_get_encoding_profile (const char *media_type); 

但其返回值赋给一个gchar *

GstEncodingProfilestruct类型,只要我能确定(typedef struct _GstEncodingProfile GstEncodingProfile;)和gchar可能是typedef为字符类型(最有可能从油嘴滑舌typedef char gchar;)。所以这些类型将不兼容。