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