比较内存中指针的多动态结构?

时间:2015-10-22 14:38:12

标签: c pointers winapi structure

基本上,我想要实现的目标如下;

我希望能够将指针指针与内存中的结构块进行比较,而无需动态迭代其所有值。我正在使用API​​挂钩,因此尽可能使用一点“for循环迭代”至关重要,更好的是,不使用它。

基本上,假设我有一个结构

typedef struct myStruct
{
  USHORT age;
  PCHAR username;
}
_myStruct, *__myStruct;

然后我像这样初始化它

__myStruct *Pointer;
ZeroMemory(&Pointer, NULL);

现在假设结构在每个变量中都填充了一组值。假设我已经定义了一个数字'x',以及任何给定的'y',它是指向结构的指针中给定的Index

for (int y = 0; y < SizeOfStructure; ++y)
  if (x == Pointer[y]->age)
    // do_something();

因此,在这种情况下,'y'将是来自for循环的迭代变量,但我怎么能在以下行中做一些事情:

if (memcmp(&Pointer, x) == 0)
  // do_something();

因此,在这种情况下,我不是在迭代结构,而只是简单地在内存中同时比较它的所有元素?我通常会使用with {in CRITICAL_SECTION进行for循环操作,但无论哪种方式,它仍然可能导致进程崩溃。我有什么方法可以按照上述安全的方式做到这一点?

0 个答案:

没有答案