簡體   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