gpt4 book ai didi

c - 使用指针访问结构成员

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:58 25 4
gpt4 key购买 nike

我是 C 的新手。我正在尝试在 main 之外创建一个 typedef 结构,然后创建一个 typedef 的指针。然后将这个指针传递给另一个函数。但是我收到错误。这让我发疯。非常感谢你..

typedef struct rem_info
{
char ufrag[80];
char pwd[80];
unsigned comp_cnt;
pj_sockaddr def_addr[PJ_ICE_MAX_COMP];
unsigned cand_cnt;
pj_ice_sess_cand cand[PJ_ICE_ST_MAX_CAND];
} rem_info;

void reset_rem_info(rem_info *prem)
{
pj_bzero(prem, sizeof(rem_info));
}

int main()
{
rem_info *prem;
reset_rem_info(&prem);

return 0;
}

错误:

*WARNING**:ex7.c:51:1: warning: passing argument 1 of ‘reset_rem_info’ from incompatible pointer type [enabled by default]
reset_rem_info(&prem);
^
ex7.c:41:6: note: expected ‘struct rem_info *’ but argument is of type ‘struct rem_info **’
void reset_rem_info(rem_info *prem)

最佳答案

查看您的主要功能:

int main()
{
rem_info *prem;
reset_rem_info(&prem);

return 0;
}

您正在创建指向 rem_info 的指针并将其地址传递给 reset_rem_info。这意味着您正在传递一个指向 rem_info 的指针。要对其进行类型检查,您可以直接传递指针而不获取其地址。

int main()
{
rem_info *prem;
reset_rem_info(prem);

return 0;
}

但这可能会给您带来错误。您现在正在处理指向 rem_info 的未初始化指针。您可能想要的是创建一个实际的 rem_info 并将其地址(指向 rem_info 的指针)传递给该函数。

int main()
{
rem_info prem;
reset_rem_info(&prem);

return 0;
}

关于c - 使用指针访问结构成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28384914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com