2012-12-28 57 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;)。所以這些類型將不兼容。