Я не могу записать в блок виртуальной памяти, несмотря на то, что он помечен как PAGE_READWRITE. Это исключение сгенерировано во время выполнения:C++ Невозможно записать в виртуальную память, несмотря на то, что она помечена как прочитанная и записываемая
Exception thrown at 0x722E4AE9 (vcruntime140d.dll) in ConsoleApplication.exe: 0xC0000005: Access violation writing location 0x00000000.
Вот код:
#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);
}
В документации говорится, что при возникновении ошибки VirtualAlloc возвращает null и устанавливает ошибку. Возможно, это помогает вам там. – Hayt
Соблюдайте, что говорит Хейт. Я искренне сомневаюсь, что «местоположение 0x00000000» - это чтение и запись в вашей системе. –