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的值 展开
using namespace std;
int main()
{
int *p=0x01005A74;
cout<<地址的值是:<<*p<<endl;
return 0;
}
为什么报错呢,想取地址0x01005A74的值 展开
展开全部
1. 语法的错误
#include <iostream>
using namespace std;
int main()
{
int *p=0x01005A74; // 这样也可以, 不过最好做类型转换 int *p = (int*)0x01005A74
cout<<"地址的值是:"<<*p<<endl; // 输出的字符串要加""
return 0;
}
2. 可能产生的错误: 不要直接给指针这样赋值, 因为指定的内存不一定可以被读取或更改, 当没有相应权限时候程序就会产生错误.
追问
需要强制类型转换,编译通过,但是运行就崩溃了?这是为啥呢?没有权限的话,怎么提升权限呢?
追答
运行就崩溃是在预料之中的. 记住不要这样用就行了. 如果那么容易让你读取某个地址的内容那那样的操作系统也太不安全了. 所以基本上也别打这方面的主意了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询