| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 250 人关注过本帖
标题:一个结构的处理疑问?
取消只看楼主 加入收藏
pigy
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
一个结构的处理疑问?
以下是一个简单程序,想输出结构的内容,请大家指点下,万分感谢!
typedef struct DATA_STRU{
    int len;
    char *pdata;//指向要输出的数据缓冲,用指针是想让其可以指向任意大的数组或字符串
}DATA;

char string1[] = {"abcd"};
//char string2[] = {"efghiskkl"};

void put_data(char *pbuf, int len)
{
      int i;
      char *pbuffer = pbuf;

      for (i = 0; i < len; i++)
     {
          out_data(*pbuffer++);//输出到终端的函数
     }
}

void main(void)
{
    DATA g_data;
   
    g_data.len = strlen(string1);
    g_data.pdata = ?;//请问这个要怎么取string1的值,让下面的函数调用后可以输出string1的内容呢?

    put_data(&g_data.a1, (g_data.len + sizeof(int)));
}

我用g_data.pdata=string1,输出的值为string1的地址值,而非string1的内容abcd!请问要怎么取值成行,或者结构要如何更改呢?
搜索更多相关主题的帖子: 字符串 
2011-06-09 16:23
pigy
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-9
收藏
得分:0 
难道这问题很小白!没人指点下么!
2011-06-09 16:35
pigy
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-9
收藏
得分:0 
程序代码:
我这函数的整体要求是输出结构体内的内容,其中put_data函数是其它封装好的库,功能是输出pbuf指向的地址的len个数据(此函数假设无法变动)
typedef struct DATA_HEADER_STRU{
    char bTag;
    char bTagInverse;
    int  len;
}DATA_HEADER;

typedef struct DATA_STRU{
    DATA_HEADER  data_header;  //对下面指向的数据的修饰头
    char         *pdata;       //指向要输出的数据缓冲,用指针是想让其可以指向任意大的数组或字符串
}DATA;

char string1[] = {"abcd"};
//char string2[] = {"efghiskkl"};

//设此函数不变动
void put_data(char *pbuf, int len)
{
      int i;
      char *pbuffer = pbuf;

     for (i = 0; i < len; i++)
     {
          out_data(*pbuffer++);//此功能函数被封装无法改,输出pbuffer地址的内容.
     }
}

//输出结构中内容
void main(void)
{
    DATA g_data;
   
    g_data.data_header.bTag = 0x01;
    g_data.data_header.bTagInverse = ~g_data.data_header.bTag;
    g_data.data_header.len= strlen(string1);
    g_data.pdata = string1;//请问这个要怎么取string1的值,让下面的函数调用后可以输出string1的内容呢?

    put_data(&g_data.data_header, (g_data.data_header.len + sizeof(DATA_HEADER)));
} 


这样操作后,会输出0x01 0xFE string1长度 string1地址值(非string1的内容);,我是想怎么在不变动put_data函数的情况下,通过变动结构体或其它的,通过调用put_data函数输出正确的内容呢?即0x01 0xFE string1长度 string1内容 ,谢谢!


[ 本帖最后由 pigy 于 2011-6-9 23:17 编辑 ]
2011-06-09 23:14
快速回复:一个结构的处理疑问?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018268 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved