社区
C++ 语言
帖子详情
给内存地址“0x123456789”赋值为0的问题
LearaeL
2011-09-07 04:08:26
#include <iostream>
using namespace std;
int main()
{
long *p;
cout << 0x123456789;
p=(long *)0x123456789;
*p=0;
//cout << 0x123456879; //编译错误,求解释以及正确的赋值方法,谢谢
}
...全文
427
11
打赏
收藏
给内存地址“0x123456789”赋值为0的问题
#include using namespace std; int main() { long *p; cout << 0x123456789; p=(long *)0x123456789; *p=0; //cout << 0x123456879; //编译错误,求解释以及正确的赋值方法,谢谢 }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luciferisnotsatan
2011-09-07
打赏
举报
回复
[Quote=引用 10 楼 luciferisnotsatan 的回复:]
得保证有读写那处地址的权限才行。
[/Quote]
而且,修改还需要不会影响程序正常运行
luciferisnotsatan
2011-09-07
打赏
举报
回复
得保证有读写那处地址的权限才行。
gw_net
2011-09-07
打赏
举报
回复
access vialoation
yuyan_linger
2011-09-07
打赏
举报
回复
long *p;
p=(long *)0x12345678;
cout<<*p;
*p=0;
cout<<*p;
我觉得你可能是想这样 看看修改前后这个地址的值原来是多少 现在是不是0
但是 这个地址是非法地址 会崩溃 你换个栈地址试试
辰岡墨竹
2011-09-07
打赏
举报
回复
这种荒唐的事情,OS能允许你么?就算是用户空间,如果你没有用VirtualAlloc分配内存页,对应的内存页应该是不可写的吧。
不要妄图做这种事情,毕竟内存是Windows管理的,你要写什么,能不能写,得先让系统同意了再说。
除非你能切换到ring0级,否则任意地址写是不可能做到的。
kkrmr
2011-09-07
打赏
举报
回复
turing-complete
2011-09-07
打赏
举报
回复
[Quote=引用 3 楼 learael 的回复:]
引用 2 楼 ouyh12345 的回复:
cout << 0x123456789;干嘛?
输出地址还是内容?如果是内容的话
cout << *(long *)0x123456789;
前面的cout是测试一下 与后面修改后的对比一下 。可以 cout << 0x123456789也可以直接输出一个随机数字啊
[/Quote]
随机数这种思想会造成越界的,再者就算取到了,结果也不一定是随机的
clannadgirl
2011-09-07
打赏
举报
回复
在有的编译器里 直接修改指针指向的地址的值也是不合法的
LearaeL
2011-09-07
打赏
举报
回复
[Quote=引用 2 楼 ouyh12345 的回复:]
cout << 0x123456789;干嘛?
输出地址还是内容?如果是内容的话
cout << *(long *)0x123456789;
[/Quote]
前面的cout是测试一下 与后面修改后的对比一下 。可以 cout << 0x123456789也可以直接输出一个随机数字啊
ouyh12345
2011-09-07
打赏
举报
回复
cout << 0x123456789;干嘛?
输出地址还是内容?如果是内容的话
cout << *(long *)0x123456789;
weixiaoshashou
2011-09-07
打赏
举报
回复
0x123456789,你数一下有多长吧,36位,这能不出错吗
给
内存地址
“0x12345678”
赋值
为0
代码为: long *p; p=(long*)0x12345678; *p=0;
嵌入式公司常考的一道指针题目:直接给
内存地址
赋值
1、《程序员面试宝典》P67面试题3:给
内存地址
“
0x123456789
”
赋值
为0,请写出代码。锐捷公司2007年的一道笔试题目 2、代码: #include<iostream> using namespace std; int main() { long *p;//这里...
给指定的寄存器地址:0x0001eea7 ,
赋值
给指定的
内存地址
:0x0001eea7 ,
赋值
100 怎么实现? (volatile char)0x0001eea7=100; 常见错误1: (volatile unsigned int)0x0001eea7=100; 错误原因:unsigned int是一个指向int型变量的指针,在32位机上,...
c语言实现数据写入存储地址,c语言中通过指针将数值
赋值
到制定
内存地址
1.一种直观的方法假设现在需要往内存0x12ff7c地址上存入一个整型数0x100。我们怎么才能做到呢?我们知道可以通过一个指针向其指向的
内存地址
写入数据,那么这里的
内存地址
0x12ff7c其本质不就是一个指针嘛。所以我们...
关于给指定
内存地址
赋值
最近看《C语言深度解剖》一书关于“将数值存储到指定
内存地址
”的
问题
(p88)书上说
赋值
方式为:int *p=(int *)0x12ff7c; *p=0x100;或者 *(int*)0x12ff7c=0x100; 这里的地址0x12ff7c是作者先定义的一个变量 ...
C++ 语言
65,210
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章