我有以下的代码块:传递参数参数
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