为什么在这里不会发生从非const到const的隐式转换?

可能重复:
为什么将(指向非const的指针)转换为(指向const的指针)是合法的
C中的双指针常量警告

我将gchar**传递给g_key_file_set_string_list ,它需要一个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(, , , terms, count); 

和GCC 4.7.1的选项-std=c99 -pedantic给了我这个

警告:从不兼容的指针类型传递’g_key_file_set_string_list’的参数4

注意:预期’const gchar * const *’但参数类型为’gchar **’

AFAIK,无论是在C和C ++中,从非const转换为const都是隐式的,这就是我们看到像strcpy这样的标准函数采用const args的原因。 那不是在这里发生的吗?