【发布时间】:2014-09-13 18:47:27
【问题描述】:
查看以下代码:
#include<iostream>
using namespace std;
int main()
{
int a=10;
int *p=&a;
*(p+1)=6;
cout<<*(p+1);
}
上面的代码不起作用。然而,下面这段分配给显式内存地址的代码确实有效:
#include<iostream>
using namespace std;
int main()
{
int *p=(int *)0x28fefc;
*(p+1)=6;
cout<<*(p+1);
}
为什么其中一种方法有效,而另一种无效? 我在第二个中使用了我计算机的内存地址。这个地址可能在其他机器上不起作用。
【问题讨论】:
-
“不起作用”是什么意思?会发生什么?
-
进程返回负值并立即终止