1
我相信我有一個非常基本的指針問題...我想使用Windows API(所以像malloc這樣的東西是不可能的)來創建一個動態內存塊用於各種在分配區域內的各種偏移處保存C字符串,整數值等。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值。
希望這是明確的,我的困惑是一如既往,任何幫助,非常感謝。
乾杯,
應該是手柄,而不是手柄。應該是LONG32 * lpHeapAdr(缺少*)。顯示真實的代碼,以及它究竟發生了什麼。 – manuell
for循環中特定偏移量的值不像預期的那樣......這是通過內存地址索引和遞增的正確方法嗎? – 5k1zk17
yes.it是指向已分配內存塊的指針 – qwr