我有以下的代碼塊:傳遞參數參數
typedef struct Folder{
void (**vtable)();
struct Set *ns;
}Folder;
Node *newFolder(char *n,struct Set *ns);
當我編譯這個文件,它給了我:
passing argument to parameter 'ns' here
Node *newFolder(char *n,struct Set *ns);
下面是該我的測試單位:
void testFolderNrNodes(CuTest *tc) {
Node_reset();
Node* folder = newFolder("folder_to_test", SetNil());
CuAssertIntEquals(tc, 1, nrNodes(folder));
}
它給了我這個錯誤:
incompatible integer to pointer conversion passing 'int' to parameter of type
'struct Set *' [-Wint-conversion]
Node* folder = newFolder("folder_to_test", SetNil());
^~~~~~~~
我不明白問題所在。它是否來自struct Set *ns
?爲什麼我會收到"incompatible integer to pointer conversion passing 'int' to parameter of type 'struct Set *"
的消息? 有人可以讓我知道我在做什麼錯了嗎?
什麼是'struct set'(和'Node')?當你使用'struct Set'時,你確定你不是指'struct Folder'嗎? 'SetNil()'問題似乎是你沒有聲明函數,所以通過上下文C編譯器假定它是一個返回int的函數。 –
請更新您的問題以包含'SetNil()'的定義。 –
它看起來像SetNil()返回一個int,而不是指向結構Set的指針。正如@leeduhem所提到的,請包括SetNil()的定義,這將有助於解決問題 – Joe