|
|
发表于 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]];//...
....
当然,具体的还要保存类型信息(如果是有类型的系统)。总的来说,需要自己描述自己。
还有用关联容器,通过字符串来检索成员。
|
|