你得拷贝出来,ns1__ArrayOfString 定义了一个定长字符串,那么该字符串可能不是以 \0 结束的,所以需要 __sizestring来规定长度。
char* p = *(ns1__ArrayOfString.string);
char buf[200]
memcpy(buf,p,ns1__ArrayOfString.__sizestring);
哦,那如果要打印string的数据呢?
printf(“”);
@hcu5555: 我假设 ns1__ArrayOfString.string 是以\0结束的字符串,那么你可以直接 printf(*ns1__ArrayOfString.string);
如果不是以 \0 结束的,那么你需要按我给出的代码来转换,同时需要设置 buf[ns1__ArrayOfString.__sizestring] = 0 ,也就是让 buf 表示是以 \0 结束的字符串,然后printf(buf);
当然,这样做,并不能保证 buf 数组中小于 ns1__ArrayOfString.__sizestring 位置之前的某个字符肯定
不是 \0。
呵呵。谢谢大侠的帮忙。。我自己找人弄出来了。
其实只有一句话。。呵呵。谢谢大侠。
printf("%s\n",*sensor_speed_response.GetSensor_USCORESendSpeedResult->string);