c++取内存中的值

#include<iostream>usingnamespacestd;intmain(){int*p=0x01005A74;cout<<地址的值是:<<*p<<endl... #include <iostream>
using namespace std;
int main()
{
int *p=0x01005A74;
cout<<地址的值是:<<*p<<endl;
return 0;
}

为什么报错呢,想取地址0x01005A74的值
展开
 我来答
ayktx
2013-07-09 · TA获得超过668个赞
知道小有建树答主
回答量:946
采纳率:33%
帮助的人:415万
展开全部

 1. 语法的错误


#include <iostream>
using namespace std;
int main()
{
   int *p=0x01005A74;  // 这样也可以, 不过最好做类型转换  int *p = (int*)0x01005A74
   cout<<"地址的值是:"<<*p<<endl; // 输出的字符串要加""
   return 0;
}

 2. 可能产生的错误: 不要直接给指针这样赋值, 因为指定的内存不一定可以被读取或更改, 当没有相应权限时候程序就会产生错误.

追问
需要强制类型转换,编译通过,但是运行就崩溃了?这是为啥呢?没有权限的话,怎么提升权限呢?
追答
运行就崩溃是在预料之中的. 记住不要这样用就行了. 如果那么容易让你读取某个地址的内容那那样的操作系统也太不安全了. 所以基本上也别打这方面的主意了
百度网友455632d898
2013-07-09 · TA获得超过275个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:338万
展开全部
可能是这块内存你程序不可读的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式