我的数据结构非常大。 只有1种结构。 现在,此结构下有许多子结构,依此类推。 我必须将随机值添加到此结构的每个变量中。 我本来可以手动完成的,但是下面有超过10000个变量。 这是一个长而深的结构,在结构下具有结构。
例如->这只是一个例子,实际结构很大
struct qwerty{
unsigned short catch;
unsigned short port;
MediaAuthType_e mediaAuth;
typeShortNatmr NAT;
typeDynEpDom domain;
typeRDomList domainlist;
typeDom domainSize;
};
现在,这些数据类型中的每一个都有其下的子结构 例如,对于上面的MediaAuthType_e数据类型,我们的结构为
struct MediaAuthType_e
{
int nunkhdr;
msg_body_list* unknown_msg_body;
int unknown_msg_body_count;
SipLssHandle Handle;
InfoEntry *dfo;
char* ua_uri;
char* accept;
void* s_contact;
char* branch;
char* chargeNum;
int 100Supported;
int 100Required;
};
以此类推。
有人可以帮忙吗? 我只需要为每个变量存储随机值? 我可以自动执行此过程吗?
编辑:
我这样做的原因是, 我必须将数据编码为xdr格式并对其进行解码以获得相同的值
答案 0 :(得分:3)
以下伪代码将分配随机值。但是,这些指针将不是有效的指针!它只是用顺序值填充整个内存区域。
unsigned long int i; // in case your structure is too Big!
struct MediaAuthType_e *my_MediaAuthType_e;
my_MediaAuthType_e = malloc(sizeof(struct MediaAuthType_e));
char *tmp = (char *)my_MediaAuthType_e;
for(i = 0; i < sizeof(struct MediaAuthType_e); i++)
{
*tmp = (i%255); // Assign some values at each byte, use your logic to assign random values.
tmp++;
}