我给了一个char *参数。这基本上是一个由“hex-address new_val”组成的输入流,我需要将这两个值读作int *。我正在使用sscanf()和读取十六进制地址就好了,但我无法弄清楚如何推进阅读new_val。不管我尝试了什么 - 我得到了段错误。以下是我到目前为止的情况:
int set_new_val(Cmd *cp, char *arguments) {
int* addr;
int* val;
sscanf(arguments, "%x",&addr);
sscanf(arguments+?????, "%x",&val);
/*see if I read it correct*/
printf("adr = %x || val = %x\n",(unsigned int)*addr,(unsigned int)*val);
/*not finished*/
return 0;
}
答案 0 :(得分:1)
int addr,val; //不是int *
sscanf(参数,"%x%x",& addr,& val);
printf(" adr =%x || val =%x \ n",addr,val);