[英]C: Passing an array of pointers to structs as an argument
这个问题很可能已经得到了回答,所以我将非常简单地解释一下:
我已经定义了一个“列表”结构。 在一个单独的函数中,我初始化了一个名为“table”的数组:
int table_size = 500;
struct list* table[table_size];
这将存储指向这些“列表”结构的指针。 稍后在函数中,我将此表作为第三个参数传递给另一个函数:
generate(word, table_size, table);
这个“生成”函数的定义如下:
void generate(char *str, int table_size, struct list* table)
当我尝试编译时,出现以下错误:
从不兼容的指针类型 [-Werror] 传递“生成”的参数 3
注意:预期为“struct list *”,但参数的类型为“struct list **”
感谢任何可以解释出了什么问题的人。
您的 generate 函数类型错误。 尝试
void generate(char *str, int table_size, struct list** table)
或者
void generate(char *str, int table_size, struct list* table[])
答案在错误消息中:将参数更改为struct list **
类型。
您对 table 的声明是一个结构列表指针数组。 它被编译为指向结构列表指针的指针。 像这样声明表:
struct list table[table_size]
我假设您想要一个结构列表数组。 否则,请按照上述答案进行操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.