繁体   English   中英

C:将指向结构的指针数组作为参数传递

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM