C++ 使用指针在RAM中迭代

C++ 使用指针在RAM中迭代,c++,pointers,memory,C++,Pointers,Memory,我想创建一个程序,可以使用指针遍历RAM中的所有地址。我能做如下的事情吗 int *thePointer = 0x000000; //int for 32bit os. while(thePointer! = 0xFFFFFF){ std::cout << *thePointer << ' --- ' << thePointer << endl; thePointer++; } int*thePointer=0x00000

我想创建一个程序,可以使用指针遍历RAM中的所有地址。我能做如下的事情吗

int *thePointer = 0x000000; 
//int for 32bit os.

while(thePointer! = 0xFFFFFF){

    std::cout << *thePointer << ' --- ' << thePointer << endl;
    thePointer++;

}
int*thePointer=0x000000;
//32位操作系统的int。
while(指针!=0xFFFFFF){

操作系统和运行时环境自20世纪80年代家庭计算机的美好时光以来已经发展了很多,在那里这种技术是完全可能的:那个时代的一些电脑游戏作弊戳是我的

C++只允许您访问显式拥有的内存。尝试访问任何其他内存的行为是未定义的。在形式上,您甚至不允许设置指向您不拥有的内存位置的指针,除了
nullptr
和一个超过数组结尾或一个超过标量地址之外


您必须在远低于编写程序的级别上实现目标。构建自己的操作系统内核是一种方法。

这可能值得一读,因为这可能会影响您的计划。您希望通过进程的虚拟地址空间来创建它吗?还是需要迭代物理记忆?后者可能在某些“小”的情况下发生嵌入式环境。在这种情况下,请提供更多关于环境的信息。您需要学习操作系统和虚拟内存的基本知识,以及分段错误是什么。C++不允许这样做,它是UB。您应该提到您的实现,因为您要做的是高度具体的实现。这是推测的吗?当你尝试的时候发生了什么?哇!你真是一个传奇。你说构建我自己的操作系统内核是什么意思?像作弊引擎这样的软件是这样工作的吗?@glennmark:这是一条漫长的路。如果我是你,我会走linux路线,而且有用C编写的开源版本。我认为作弊引擎现在利用的后门是有意的被游戏开发者故意抛在后面。