根据C中的条件更改指针(星号1.4 cdr结构)
如何执行以下操作?完整代理字符串需要指向cdr->channel或cdr->dstchannel:根据C中的条件更改指针(星号1.4 cdr结构),c,pointers,C,Pointers,如何执行以下操作?完整代理字符串需要指向cdr->channel或cdr->dstchannel: .... char *cdr_channel = cdr->channel; char *cdr_dstchannel = cdr->dstchannel; char *full_agentstring = NULL; if(strstr(cdr_channel, agent_pattern) != NULL) { *full_agentstring = cdr->c
....
char *cdr_channel = cdr->channel;
char *cdr_dstchannel = cdr->dstchannel;
char *full_agentstring = NULL;
if(strstr(cdr_channel, agent_pattern) != NULL) {
*full_agentstring = cdr->channel;
} else if(strstr(cdr_dstchannel, agent_pattern) != NULL) {
*full_agentstring = cdr->dstchannel;
我也尝试了full\u agentstring=&cdr\dstu频道
,但仍然收到警告:
来自不兼容指针类型的分配[默认情况下已启用]
if(strstr(cdr_channel, agent_pattern) != NULL) {
full_agentstring = cdr->channel;
} else if(strstr(cdr_dstchannel, agent_pattern) != NULL) {
full_agentstring = cdr->dstchannel;
或者,如果我没有正确理解你的问题,那么这里是第二种方法
char *cdr_channel = cdr->channel;
char *cdr_dstchannel = cdr->dstchannel;
char **full_agentstring = NULL;
if(strstr(cdr_channel, agent_pattern) != NULL) {
full_agentstring = &cdr->channel;
} else if(strstr(cdr_dstchannel, agent_pattern) != NULL) {
full_agentstring = &cdr->dstchannel;
什么类型的
cdr->channel
或cdr->dstconnel
?它是指针还是字符?AntoJurković请看,我已经更新了主题。这两个主题类型相同,因此您不需要取消引用,full\u agentstring=cdr->channel代码>就足够了。