游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2023|回复: 4

请教一下如何动态定义结构体??

[复制链接]

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
发表于 2007-8-12 12:54:00 | 显示全部楼层 |阅读模式
RT,谢谢解答。

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
发表于 2007-8-12 18:32:00 | 显示全部楼层

Re:请教一下如何动态定义结构体??

你以为是在定义对象啊~~~C没前途的,顶多做底层,学C++咯

76

主题

1100

帖子

1107

积分

金牌会员

Rank: 6Rank: 6

积分
1107
发表于 2007-8-12 20:01:00 | 显示全部楼层

Re:请教一下如何动态定义结构体??

顶楼上的.认真学学C++吧.多用类定义;

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-8-12 21:00:00 | 显示全部楼层

Re:请教一下如何动态定义结构体??

这个问题从语言的角度,应该没办法解决吧?
问题推广一下,就是怎么实现一个数据库雏形了。

PS:L3这几天看云风的书看得太爽了吧,你看这篇:http://blog.codingnow.com/2007/05/good_design.html

103

主题

1432

帖子

1458

积分

金牌会员

Rank: 6Rank: 6

积分
1458
QQ
发表于 2007-8-12 21:32:00 | 显示全部楼层

Re:请教一下如何动态定义结构体??


1,有没有必要动态定义? 比如你说需要一个数据结构,你可以先定义了再在运行中生成就行了。
所谓的动态,是在不知道其大小,内部成员细节,而在运行时才知到才需要动态定义?这个真的需要么?

2.最简单的,可以用数组模拟。首先动态申请一块内存,满足不知大小这个要求。然后定义相对位移,满足不知道成员结构这个要求。

比如:
void ptr = malloc ( 20 );
vector<int> ds; // 动态成员的位移

比如ds = 0, 2,12, 16; 那么就是4个成员,分别是2字节,10字节,4字节,4字节。
ptr[ds[0]] ;//第一个
ptr[ds[1]] ;//第二个
ptr[ds[2]];//...
....
当然,具体的还要保存类型信息(如果是有类型的系统)。总的来说,需要自己描述自己。

还有用关联容器,通过字符串来检索成员。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 11:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表