Can I Allocate a specitic memory address using pointers in c++ ?
For example: Allocate This memory address 25D4C3FA and put 4 in it.
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With