C++如何往指定内存地址读写数据

zhangjztt 2016-02-22 09:43:01
我现在有一个结构体,如下所示:
typedef struct {
char name[50];
float x, y, z;
float speed;
float heading;
float pith;
float roll;
int color;
int health;
int entityType;
int force;
int id;
} BasicEntitydata;
现在我想把这个结构体获取到的数据,写入到指定的内存地址中,如0x1700000这种地址,该通过什么方法实现?
(LZ小白一个,希望各大神说的稍微简单些……多谢了哈~)
...全文
2762 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 版主 2016-02-22
  • 打赏
  • 举报
回复
如果不是写到其他程序的内存空间里,可以用memcpy,具体用法网上都有讲 可以参看:http://www.cplusplus.com/reference/cstring/memcpy/?kw=memcpy
zhangjztt 2016-02-22
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
WriteProcessMemory
老师,你每次的回答都很简洁啊……
赵4老师 2016-02-22
  • 打赏
  • 举报
回复
WriteProcessMemory
zhangjztt 2016-02-22
  • 打赏
  • 举报
回复
引用 1 楼 hnwyllmm 的回复:
BasicEntitydata *p = (BasicEntitydata *)0x1700000; 这样你就可以直接对p赋值了,但是可能会引起程序异常
这是直接赋值么?意思是定义一个p的指针,然后指向那个地址?我去试试。
羽飞 2016-02-22
  • 打赏
  • 举报
回复
BasicEntitydata *p = (BasicEntitydata *)0x1700000; 这样你就可以直接对p赋值了,但是可能会引起程序异常
zhangjztt 2016-02-22
  • 打赏
  • 举报
回复
引用 12 楼 yshuise 的回复:
[quote=引用 11 楼 zhangjztt 的回复:] [quote=引用 7 楼 yshuise 的回复:] 有种语法叫定位new: news(0x1700000)BasicEntitydata;
没见过哈……能详细说明下么……[/quote] http://www.linuxidc.com/Linux/2015-02/114057.htm[/quote] 多谢!
yshuise 2016-02-22
  • 打赏
  • 举报
回复
引用 11 楼 zhangjztt 的回复:
[quote=引用 7 楼 yshuise 的回复:] 有种语法叫定位new: news(0x1700000)BasicEntitydata;
没见过哈……能详细说明下么……[/quote] http://www.linuxidc.com/Linux/2015-02/114057.htm
zhangjztt 2016-02-22
  • 打赏
  • 举报
回复
引用 7 楼 yshuise 的回复:
有种语法叫定位new: news(0x1700000)BasicEntitydata;
没见过哈……能详细说明下么……
zhangjztt 2016-02-22
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
[quote=引用 4 楼 zhangjztt 的回复:] [quote=引用 3 楼 zhao4zhong1 的回复:] WriteProcessMemory
老师,你每次的回答都很简洁啊……[/quote] 心有灵犀一点通。[/quote] 不过这个很有用的说……哈哈
zhangjztt 2016-02-22
  • 打赏
  • 举报
回复
引用 5 楼 paschen 的回复:
如果不是写到其他程序的内存空间里,可以用memcpy,具体用法网上都有讲 可以参看:http://www.cplusplus.com/reference/cstring/memcpy/?kw=memcpy
了解……我试试~~~
在飞的特拉斯 2016-02-22
  • 打赏
  • 举报
回复
引用 7 楼 yshuise 的回复:
有种语法叫定位new: news(0x1700000)BasicEntitydata;
没见过阿,学习了
yshuise 2016-02-22
  • 打赏
  • 举报
回复
有种语法叫定位new: news(0x1700000)BasicEntitydata;
赵4老师 2016-02-22
  • 打赏
  • 举报
回复
引用 4 楼 zhangjztt 的回复:
[quote=引用 3 楼 zhao4zhong1 的回复:] WriteProcessMemory
老师,你每次的回答都很简洁啊……[/quote] 心有灵犀一点通。

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧