【发布时间】:2013-11-18 04:26:45
【问题描述】:
我正在尝试将指向结构的指针传递给单独的函数。但是当我去编译时,我得到warning: passing argument 1 of 'build_network_state' from incompatible pointer type
这是编译到我的程序中的辅助函数:
typedef struct router {
int num;
char label[64];
Topology *topology;
} Router;
这是来自 .c 文件:
void build_network_state(Router *ptr) {
fprintf(stdout, "Hello from router %s\n", ptr->label);
}
int main(int argc, char *argv[]) {
Router* this_router = malloc(sizeof(Router));
...
fprintf(stdout, "test: %s\n", this_router->label); // output looks fine if I comment the next line
build_network_state(&this_router);
}
【问题讨论】:
-
@chux 不,不完全是。那是因为
this_router已经是Router *类型。不需要addressof操作符。 -
@H2CO3 恭喜100K
-
@chux 没问题。无论如何,请在此处留下我的评论作为 OP 的信息。
-
@chux 哦,谢谢。 :-)
标签: c pointers struct pass-by-reference