我相信我有一个非常基本的指针问题......我想使用 Windows API(所以像 malloc 这样的东西是不可能的)来创建一个动态内存块以用于各种事情,保存 C 字符串,整数值,等在分配区域内的各种偏移量。
我正在使用的代码如下:
HANDLE hProcess = NULL;
LONG32 *lpHeapAddr = NULL;
hHeap = GetProcessHeap();
lpHeapAddr = (LONG32*)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, 0xC00);
我的问题是,如何访问返回空间中的特定偏移量。变量lpHeapAddr包含内存分配的基地址。我怀疑lpHeapAddr[0x10]会让我访问此分配的第 16 个偏移量。但是我发现这样的事情不起作用,我怀疑这仅仅是因为我的逻辑或理解不正确:
char some_array[] = {0xED, 0x84, 0x5A, 0x20};
for(i = 0; i < 0x04; i++){
lpHeapAddr[0x30+i] = some_array[i];
}
lpHeapAddr[0x30]中的值不是some_array中的值。
希望这很清楚我的困惑是什么,一如既往,非常感谢任何帮助。
干杯,