C++如何用指针指向具体的内存地址?
例如用指针P,直接指向地址0x00,并且在地址中储存一个值:100我只知道可以用*p=100;来保存值,关键不知道如何把0x00存储到指针P中...
例如用指针P,直接指向地址0x00,并且在地址中储存一个值:100 我只知道可以用*p=100;来保存值,关键不知道如何把0x00存储到指针P中
展开
1个回答
展开全部
//可以使用memcpy函数达到你复制任意值给指针的目的 #include <stdio.h> #include <iostream> int main(int argc, char* argv[]) { int *p; int address=0x400000;//比如你要把地址值0x400000赋给整型指针p memcpy(&p,&address,4); std::cout<<*p;//输出p指向的地址的整型值 //注意:这很可能会报内存访问错误,因为内存分配是由操作系统干预的,用户不能想在哪个地址读写就在哪个地址读写 } 补充: //可以使用memcpy函数达到你复制任意值给指针的目的 #include <stdio.h> #include <iostream> int main(int argc, char* argv[]) { char *p;//用 字符 串好测试 int address=0x400000;//比如你要把地址值0x400000赋给指针p memcpy(&p,&address,4); std::cout<<p;//输出p指向的字符串,大部分情况下0x400000指向的前两个 字节 应该是"MZ" //注意:这很可能会报内存访问错误,因为内存分配是由 操作系统 干预的,用户不能想在哪个地址读写就在哪个地址读写 }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |