2

重複の可能性: (非const
へのポインターへのポインター) を (const へのポインターへのポインター) に変換することが合法ではない理由

期待するg_key_file_set_string_listgchar**に a を渡していますconst gchar * const identifier []

/* this function is part of the GLib library */
void g_key_file_set_string_list(GKeyFile *key_file,
                                const gchar *group_name,
                                const gchar *key,
                                const gchar * const list[],
                                gsize length);

const gchar **terms = malloc(sizeof(gchar*) * count);
...
...
g_key_file_set_string_list(<something>, <something>, <something>,
                           terms, count);

オプションを指定したGCC 4.7.1では、-std=c99 -pedanticこれが得られます

警告: 'g_key_file_set_string_list' の引数 4 を互換性のないポインター型から渡しています

注: 'const gchar * const*' が必要ですが、引数の型は 'gchar **' です

私の知る限り、C と C++ の両方で、非 const から const への変換は暗黙的です。これが、標準関数strcpyが const 引数を取るのが好きな理由です。じゃあここじゃないの?

4

0 に答える 0