首页 新闻 赞助 找找看

结构体成员的结构体成员调用?

0
悬赏园豆:5 [已解决问题] 解决于 2012-09-20 16:53
 
 
struct _ns1__GetSensor_USCORESendSpeedResponse
{
    struct ns1__ArrayOfString*           GetSensor_USCORESendSpeedResult 0;
};
struct ns1__ArrayOfString
{
   int                                  __sizestring                   0;

    char**                               string                         0;
};
 
怎么才能得到  string 元素?怎么调用?
c
hcu5555的主页 hcu5555 | 菜鸟二级 | 园豆:209
提问于:2012-09-19 17:21
< >
分享
最佳答案
0

你得拷贝出来,ns1__ArrayOfString 定义了一个定长字符串,那么该字符串可能不是以 \0 结束的,所以需要 __sizestring来规定长度。

 

char* p = *(ns1__ArrayOfString.string);

char buf[200]

memcpy(buf,p,ns1__ArrayOfString.__sizestring);

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2012-09-20 11:24

哦,那如果要打印string的数据呢?

printf(“”);

hcu5555 | 园豆:209 (菜鸟二级) | 2012-09-20 11:41

@hcu5555: 我假设 ns1__ArrayOfString.string 是以\0结束的字符串,那么你可以直接 printf(*ns1__ArrayOfString.string);

如果不是以 \0 结束的,那么你需要按我给出的代码来转换,同时需要设置 buf[ns1__ArrayOfString.__sizestring] = 0 ,也就是让 buf 表示是以 \0 结束的字符串,然后printf(buf);

当然,这样做,并不能保证 buf 数组中小于 ns1__ArrayOfString.__sizestring 位置之前的某个字符肯定

不是 \0。

Launcher | 园豆:45045 (高人七级) | 2012-09-20 11:45
其他回答(1)
0

呵呵。谢谢大侠的帮忙。。我自己找人弄出来了。

其实只有一句话。。呵呵。谢谢大侠。

printf("%s\n",*sensor_speed_response.GetSensor_USCORESendSpeedResult->string);
hcu5555 | 园豆:209 (菜鸟二级) | 2012-09-20 16:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册