BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

问一个动态结构指针的问题,急!!
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
slackm
新手




UID:482263
注册:2006-10-28
最后登录: 2008-08-01
帖子:11
精华:0

可用积分:11 (白手起家)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
1楼 发表于 2008-6-27 13:38 
因为用到的结构体是动态生成,所以无法直接访问结构成员。在结构变量名已知,结构成员类型,和结构成员长度已知的情况下,有什么办法可以访问每个结构成员?

如下一个结构体
typedef struct
{
     成员1     char[10];
     成员2     long;
     成员3     int;

} test_struct;


test_struct  example_struct;


有什么办法可以访问example_struct里的每个成员?



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 net_robber   帅哥 (迷茫的羔羊)
版主-精灵使
堕落的鬼魂




UID:159572
注册:2004-5-20
最后登录: 2008-08-29
帖子:3389
精华:4

可用积分:4992 (小富即安)
信誉积分:99
空间积分:0 (白手起家)
专家积分:5 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
2楼 发表于 2008-6-27 13:45 
example_struct.成员1
example_struct.成员2
example_struct.成员2



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

Fisher - I Will Love You

Till my body is dust
Till my soul is no more
I'll love you

Till the sun starts to cry
And the moon turns to rust
I'll love you

Till the stars fill my eyes
And we touch the last time
I'll love you ...
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
cobras
精灵王



UID:350981
注册:2005-12-17
最后登录: 2008-08-29
帖子:356
精华:0

可用积分:385 (白手起家)
信誉积分:100
空间积分:0 (白手起家)
专家积分:19 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
3楼 发表于 2008-6-27 13:47 


typedef struct
{
     成员1     char[10];
     成员2     long;
     成员3     int;

} test_struct;

这是什么语法? C ?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

个人博客:编程兴趣屋—http://cobras.cublog.cn

提供一些中文资料及软件下载
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
slackm
新手




UID:482263
注册:2006-10-28
最后登录: 2008-08-01
帖子:11
精华:0

可用积分:11 (白手起家)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
4楼 发表于 2008-6-27 13:50 
先谢谢回复的朋友。。。。

我可能没说清楚意思-_-


我举的例子里的结构体有3个成员,这3个成员名未知,只知道他们的类型和长度。

我想问的就是有什么办法能访问这3个成员。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
yecheng_110 (我是噩梦)
大天使



UID:434651
注册:2006-6-24
最后登录: 2008-08-30
帖子:1738
精华:1

可用积分:1554 (家境小康)
信誉积分:100
空间积分:3 (白手起家)
专家积分:5 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
5楼 发表于 2008-6-27 13:57 
typedef struct
{
     char a[10];
     long b;
     int c;

} my_struct;
自己这样定义一下



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

我要加油!加油!
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
slackm
新手




UID:482263
注册:2006-10-28
最后登录: 2008-08-01
帖子:11
精华:0

可用积分:11 (白手起家)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
6楼 发表于 2008-6-27 14:06 
这个结构因为不是我定义的,所以不知道结构的成员名。
结构成员的类型和长度以及在结构中定义的顺序可以从配置文件中得到,而且结构体的指针也可已从参数中得到。

但是因为不知道结构成员名,因此无法通过 . 操作符和 ->操作符来访问。

是否可以通过指针的偏移量来访问数据成员?



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
204tian
精灵王




UID:651140
注册:2007-12-6
最后登录: 2008-08-29
帖子:263
精华:0

可用积分:244 (白手起家)
信誉积分:0
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
7楼 发表于 2008-6-27 14:10 
知道对齐方式的话, 就可以通过指针的偏移量来访问了



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
westmylove
新手




UID:655767
注册:2007-12-20
最后登录: 2008-08-25
帖子:12
精华:0

可用积分:11 (白手起家)
信誉积分:0
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
8楼 发表于 2008-6-27 14:23 


QUOTE:
原帖由 slackm 于 2008-6-27 14:06 发表
这个结构因为不是我定义的,所以不知道结构的成员名。
结构成员的类型和长度以及在结构中定义的顺序可以从配置文件中得到,而且结构体的指针也可已从参数中得到。

但是因为不知道结构成员名,因此无法通过  ...

知道结构体的排列顺序了,应该可以计算出来偏移量吧。
只不过要算好long \ int \ char 之间的对齐了。。。
主要是跟顺序有关吧。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
nbaloverme   帅哥
精灵王



UID:230913
注册:2005-2-28
最后登录: 2008-08-30
帖子:330
精华:0

可用积分:839 (稍有积蓄)
信誉积分:115
空间积分:3 (白手起家)
专家积分:0 (本版)

状态:...在线...

[个人空间] [短信] [博客]


[推广] 顶部
9楼 发表于 2008-6-27 14:44 
既然你知道结构各成员的类型和顺序
那就自己定义一个数据结构,根据指针作内存拷贝不就可以访问了吗



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 net_robber   帅哥 (迷茫的羔羊)
版主-精灵使
堕落的鬼魂




UID:159572
注册:2004-5-20
最后登录: 2008-08-29
帖子:3389
精华:4

可用积分:4992 (小富即安)
信誉积分:99
空间积分:0 (白手起家)
专家积分:5 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
10楼 发表于 2008-6-27 14:47 
没关系,你只要定义一个结构相同的 struct,然后做指针类型转换,之后直接用就行



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

Fisher - I Will Love You

Till my body is dust
Till my soul is no more
I'll love you

Till the sun starts to cry
And the moon turns to rust
I'll love you

Till the stars fill my eyes
And we touch the last time
I'll love you ...
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.044281 second(s), 4 queries , Gzip enabled