C语言指针指向一个内存地址

main(){int*p=(int*)0X22FF74;//指向内存地址//22FF74是我的另一个在运行程序中的一个变量地址,里面存放整数1000printf("%d"... main()
{
int *p=(int*)0X22FF74; //指向内存地址
//22FF74是我的另一个在运行程序中的一个变量地址,里面存放整数1000
printf("%d",*p); //输出*p的内容
}

为什么输出的却是2293620(十六进制22FF74),能不能把22FF74地址里的数据输出?
展开
 我来答
Frank7258
推荐于2016-06-09 · TA获得超过1503个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:561万
展开全部
不管怎么说,你视图通过这个方法得到“另一个程序”这个内存地址的值是不可能的,因为现代操作系统每个进程的内存空间不是共享的,也就是这个程序的某个地址和另一个程序的同一个地址不是一回事,所以你这么操作是没有意义的,而且很容易导致访问违规。

如果你企图读取另一个进程某个地址的值,必须要通过Windows API函数ReadProcessMemory来实现,他的第一个参数就是指定进程句柄,你必须告诉他你要读哪个进程的内存,第二个参数是地址。具体可以到MSDN看http://msdn.microsoft.com/en-us/library/ms680553(v=vs.85).aspx。
chen505358119
2011-04-03 · 超过27用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:86.6万
展开全部
指针变量p中不能赋具体的内存地址,如果你想把变量1000的地址赋给p的话应写成int a=1000;p=&a;必须借助变量a的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-03
展开全部
int* p=0x22ff74;即可,不用做强制类型变换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
451361904
2011-04-03 · TA获得超过441个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:91.2万
展开全部
*p就是地址吧···
不过···确实不能那么赋值!什么跟什么嘛~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式