Can I Allocate a specific memory address using pointers in c++?
Allocating a specific address in your process's address space is a bit tricky and platform-specific. On Unix systems, mmap()
is probably the closest you're going to get. The Windows equivalent is VirtualAlloc()
. There are, of course, no guarantees since the address might already be in use.
Writing to a specific address is trivial:
char *p = (char*)0x25D4C3FA;
*p = 4;
I assume you have good reasons to want to do that.
In Windows, yes.
pseudo-code:
Pointer desiredAddress = 0xD0000000;
//allocate 1 KB at our desired address
Pointer p = VirtualAlloc(desiredAddress, 1024,
MEM_COMMIT | MEM_RESERVE,
PAGE_READWRITE);