gpt4 book ai didi

更改返回的可变参数函数指针

转载 作者:行者123 更新时间:2023-11-30 18:06:29 29 4
gpt4 key购买 nike

我正在尝试通过指针传递一些可变参数,但我还没有完全明白。解析器无法工作,但这不是我的问题。我使用的是 C 的子集,但不用担心语法或词汇。

它应该像这样使用:

void functionX(void){
action[100]="GO_PLAY(12345,23)";
char id[10];
char offset[10];
ParseCommand("GO_PLAY",action,2,&id,&offset);
// after this id should be "12345" and offset should be "23"
}

bool ParseCommand(char *command, char * buffer,int count, ...){
bool returnvalue=FALSE;
int command_len=O_strlen(command);
int buffer_len=O_strlen(buffer);
int j=command_len+1;
va_list ap;
int parameter=0;
char *parsed_text;
va_start(ap, count); /* Initialize the argument list. */
while(parameter<count) {
while(buffer[j]!=','&& buffer[j]!=')') //search argument
j++;
if(j<buffer_len) { // argument found
calloc(MODULE,parsed_text,j-(command_len+1),sizeof(char));
substr(command_len+1,j,buffer,parsed_text,buffer_len);
*va_arg(ap,char*)=parsed_text; // why isnt this working?
parameter++;
j++; // to continue to search
}
}
leave:
va_end (ap);
return returnvalue;
}

最佳答案

而不是*va_arg(ap,char*)=parsed_text

尝试:sprintf(va_arg(ap, char*), "%s", parsed_text);

关于更改返回的可变参数函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5500863/

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