基本上,我想要实现的目标如下;
我希望能够将指针指针与内存中的结构块进行比较,而无需动态迭代其所有值。我正在使用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循环操作,但无论哪种方式,它仍然可能导致进程崩溃。我有什么方法可以按照上述安全的方式做到这一点?