c++里面怎么样根据内存地址访问这个地址的值?
我先运行intmain(){int*i=newint(5);printf("i=%p\n",i);}取到内存地址0x8767008运行下面程序intmain(){int*...
我先运行
int main() {
int *i = new int(5);
printf("i = %p\n", i);
}
取到内存地址0x8767008
运行下面程序
int main() {
int *p = (int*)0x8767008;
printf("p=%d\n", *p);
return 1;
}
编译成功,运行错误提示:Segmentation fault (core dumped)
在WIN底下写这个程序,编译老是报错,提示p = (int*)002D9C68;这样的赋值正确,在WIN下想要通过内在地址访问内在值是要怎么做呢
程序是在linx下运行的,最主要的是开始在WIN的时候在编译阶段就已经过不去了,看看网上的例子好像是在LINUX底下编译,于是就拿LINUX来编辑,结果编译成功了,运行却提示错误。本来想做一个用来储存对象的程序,运行一次,以后运行程序只要访问这个内存取到对象,就不用每次都初始化了,大家有没有什么办法呀,对象太大,每次初始化都需要一定时间 展开
int main() {
int *i = new int(5);
printf("i = %p\n", i);
}
取到内存地址0x8767008
运行下面程序
int main() {
int *p = (int*)0x8767008;
printf("p=%d\n", *p);
return 1;
}
编译成功,运行错误提示:Segmentation fault (core dumped)
在WIN底下写这个程序,编译老是报错,提示p = (int*)002D9C68;这样的赋值正确,在WIN下想要通过内在地址访问内在值是要怎么做呢
程序是在linx下运行的,最主要的是开始在WIN的时候在编译阶段就已经过不去了,看看网上的例子好像是在LINUX底下编译,于是就拿LINUX来编辑,结果编译成功了,运行却提示错误。本来想做一个用来储存对象的程序,运行一次,以后运行程序只要访问这个内存取到对象,就不用每次都初始化了,大家有没有什么办法呀,对象太大,每次初始化都需要一定时间 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |