可能重复:
为什么不是它合法的(指针指向非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(<something>, <something>, <something>,
terms, count);
和GCC 4.7.1与选项-std=c99 -pedantic
给我这个
警告:从兼容的指针类型传递“g_key_file_set_string_list”的参数4
注意:预期 '常量gchar * const的*',但参数的类型为 'gchar **'
AFAIK,无论是在C和C ++,转化率从非const为const是隐式的,这是我们看到类似的标准功能的原因strcpy
采取常量ARGS。 那么不会在这里发生?