c - 具有多个参数的函数指针

标签 c pointers struct

我在 C 语言方面遇到了一点问题。

我正在尝试创建一个指向具有多个参数(结构和变量)的函数的指针。

我的函数原型(prototype)是:

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;
}

这会导致我的应用“停止工作”

我做错了什么?

最佳答案

已解决,问题与函数指针无关。问题在于 db_insertdb_initiate 之前被调用。

关于c - 具有多个参数的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40933943/

相关文章:

c - C 中的 gets() 字符串函数是否被认为是一种不好的做法?

android - C语言怎么写, "ip -6 route add default dev wlan0"

c - 使用指针数组输出通过随机片段配置的句子

pointers - 在go中找到常量的地址

c - 结构中的多种类型 - C

c - 为什么fmp4文件用VLC解码不了音频,用PotPlayer可以正常播放

压缩字符数据

C编程: Explanation of why the pointer is not giving the expected value

go - 重用结构以减少堆使用

c - 声明 C 结构的语法正确方法是什么?