2016-12-02 7 views
-1

私はC言語に少し問題があります。複数の引数を持つ関数ポインタ

複数の引数(構造体と変数)を持つ関数へのポインタを作成しようとします。

私の関数のプロトタイプは次のとおりです。

void db_insert(
    struct DataBase *db, 
    struct auto_increment *a_i, 
    enum db_insert_types db_insert_type, 
    ... 
); 

とポインタが同じように定義されています。これは、停止」に私のアプリを引き起こし

int main() { 
    struct DataBase db; 
    struct auto_increment a_i; 


    void (*fct)(struct DataBase *db, struct auto_increment *a_i, enum db_insert_types db_insert_type,...); 
    fct = &db_insert; 

    (*fct)(&db, &a_i, db_insert_modele, 1, 2, 3, "asd", "dan", "mere"); 

    db_initiate(&db, &a_i); 

    db_free_mem(&db); 

    return 0; 
} 

:私はのようにポインタを使用

void (*fct)(
    struct DataBase *db, 
    struct auto_increment *a_i, 
    enum db_insert_types db_insert_type, 
    ... 
); 

作業中 "

私は間違っているの?

+1

"*しかし、ポインタが私のプログラムをクラッシュさせてしまいます*"、おそらくそうではありませんが、どのように使用されているのですか*表示しません。 – alk

+0

「自分のプログラムがクラッシュする」とはどういう意味ですか?ポインタを使って関数を呼び出すとクラッシュしますか?ポインタの代入と関数呼び出しのコードはどのように見えますか? –

+0

編集:あなたは正しく、ポインタの呼び出しによってクラッシュが発生します –

答えて

1

解決済み、問題は関数ポインタとは関係ありませんでした。問題はがdb_initiateの前に呼び出されていたことでした。

関連する問題