Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据C中的条件更改指针(星号1.4 cdr结构)_C_Pointers - Fatal编程技术网

根据C中的条件更改指针(星号1.4 cdr结构)

根据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

如何执行以下操作?完整代理字符串需要指向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->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就足够了。