libconfigを使用してacプログラムをセットアップしようとしています。example1.c があります:
int main()
{
const char **channel;
config_t config;
config_init(&config);
config_read_file(&config, "example.cfg");
if( config_lookup_string(&config,"value.channel",&channel) == CONFIG_FALSE)
{
printf("Failed to read fields\n");
return 1;
}
printf("argumente = %s\n", (char *)channel);
return 0;
}
および example.cfg ファイル
値 = { チャンネル = "こんにちは"; }
コンパイルしたら
gcc example1.c -lconfig
それは言います:
example1.c:39:3: Warning: delivery of arguments 3 from »config_lookup_string« of a incompatible pointer
/usr/include/libconfig.h:244:26: Detailed: »const char **« expected, but argument has typ »const char ***«
おもしろいことに、それは機能します...出力は次のとおりです 。argumente = hello
この警告を取り除くにはどうすればよいですか?
const char *channel
宣言をおよび output に変更するとprintf("argumente = %s\n", channel);
、開始時にセグメンテーション違反が発生し、コンパイル時に次のような警告が表示されます...Detailed: »const char **« expected, but argument has typ »const char *«