における関数ポインタのアレイを使用している間、私はこのコードを持っている:セグメンテーションフォールトC
int main()
{
unsigned char c;
enum state_t {
state1,
state2,
state3
} states;
enum state_t (*action[3])(char c);
state=state1;
initialize_state(action);
}
void initialize_state (enum state_t (*action[])(char c))
{
action[state1]=func1;
action[state2]=func2;
action[state3]=func3;
}
をIはinitialize_state(action);
でセグメンテーションフォールトを得ます。
私は 'state_t'は、あなたが関数を返すようにしたいならば、ローカル型であるとは思いません。それをグローバルにしてみてください。 –
http://sscce.org/を参照してください。 – ruakh
実際、それはそのままで、これはコンパイルされません。あなたの問題を正確に表している適切で、十分にテストされたコードを投稿してください。 –