私はポインターの配列(関数のアドレス)を使用しています。 私は複数のタイプのデータ(char *
、int
など)を解析しています。 タイプエラーを避けるために、私は倍数void *
を使用しています。 コンパイラが互換性のない型(コンパイル時に動作する)なので、混乱してしまいます。ポインターの配列の互換性のない型からの割り当て(c)
配列のプロトタイプは次のとおりです。
void *list(int x, void *arg)
{
arg_handler[0] = &my_putstr;
arg_handler[1] = &my_put_printable;
arg_handler[2] = &my_put_nbr;
arg_handler[3] = &my_put_nbr;
return (arg_handler[x](arg));
}
私からリストを呼んでいる:私は別のアドレスを保存して、特定の引数を持つ関数のアドレスを返すために、リストと呼ばれる機能を使用していvoid *(*arg_handler[4])(void *arg);
list(f_type(s[x + 1]), va_arg(args, void *));
が、私はこのエラーを得た私はなぜ理解することはできません:主な機能を通じて
warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
用:
arg_handler[0] = &my_putstr;
arg_handler[1] = &my_put_printable;
arg_handler[2] = &my_put_nbr;
arg_handler[3] = &my_put_nbr;
任意のアイデア?
その完全な警告を?私はそれがより具体的であると思った。 – alk
また、この警告はどのコード行に正確に表示されますか? – alk
はいこれは完全な警告です –