2016-12-02 114 views
-1

我有一個C語言的小問題。具有多個參數的函數指針

我試着製作一個指向具有多個參數(結構和變量)的函數的指針。

我的函數原型爲:

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

和指針的定義如下:

void (*fct)(
    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; 
} 

這使我的應用程序「停止工作「

我做錯了什麼?

+1

「*但是指針會讓我的程序崩潰。*」,可能不是,但它是如何使用的,你做*不*顯示我們。 – alk

+0

你是什麼意思「使我的程序崩潰」?通過指針調用函數時會發生崩潰嗎?指針賦值和函數調用的代碼如何查看? –

+0

編輯:你是對的,指針調用導致崩潰 –

回答

1

解決了,這個問題與函數指針無關。問題是在db_initiate之前調用了db_insert