|
3驿站币
现在遇到实际情况是这样的,已知一个数据的内存地址,需要去解析其中的Key数据,这个数据的空间分布大致如下(按顺序排列):
DWORD num1; //Key1的个数
DWORD Key1[0];
DWORD Key1[1];
......
DWORD Key1[num1];
DWORD num2; //Key2的个数
DWORD Key2[0];
DWORD Key2[1];
......
DWORD Key2[num2];
很明显这是一个有规律的数据结构,理想中应该是这么解析的
struct MyStruct
{
DWORD num1;
DWORD Key1[num1];
DWORD num2;
DWORD Key2[num2];
};
这样我就能很方面地提取出来数据
例如pMyStruct->Key1[1],pMyStruct->Key2[5];
然而实际上这样是不行的.
似乎要用到链表才能解决.
否则只能手动解析了...不能用完美的形式来表示.
除了使用链表(太麻烦的样子)或者手动解析之外,先来问问还有没有什么好办法呢?
|
最佳答案
查看完整内容
本身你使用这种方法去定义 MyStruct 就是错误的:
struct MyStruct
{
DWORD num1;
DWORD Key1[num1];
DWORD num2;
DWORD Key2[num2];
};
DWORD Key1[num1]; 要求 num1 必须是个已知的值,但是你现在使用的是个普通的变量,所以连编译都通不过。你可以这样定义:
struct MyStruct
{
DWORD num1;
DWORD *Key1;
DWORD num2;
DWORD *Key2;
};
让 ...
上一篇: 文件释放下一篇: c++管理员运行cmd怎么写
|