Je ne parviens pas à écrire dans un bloc de mémoire virtuelle bien qu'il soit marqué comme PAGE_READWRITE. Ceci est l'exception levée lors de l'exécution:C++ Impossible d'écrire dans la mémoire virtuelle bien qu'elle soit marquée comme étant en lecture et écriture
Exception thrown at 0x722E4AE9 (vcruntime140d.dll) in ConsoleApplication.exe: 0xC0000005: Access violation writing location 0x00000000.
Voici le code:
#include <iostream>
#include <windows.h>
int main() {
char* memblock;
memblock = new char[8] { 0, 1, 2, 3, 4, 5, 6, 7 };
LPVOID virtual_memory_area = VirtualAlloc(NULL, 8, MEM_PHYSICAL, PAGE_READWRITE);
memcpy(virtual_memory_area, memblock, 8);
}
La documentation indique que lorsqu'une erreur se produit, VirtualAlloc renvoie null et définit une erreur. Peut-être que celui-ci vous y aide. – Hayt
Tenez compte de ce que dit Hayt. Je doute sincèrement que l'emplacement 0x00000000 soit en lecture-écriture sur votre système. –