遍历我的数据结构,并为其输入随机值

时间:2018-07-24 11:23:52

标签: python c++ c linux data-structures

我的数据结构非常大。 只有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格式并对其进行解码以获得相同的值

1 个答案:

答案 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++;
}