#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int main()
{
int a[]={0,1,2,3};
int *r[]={NULL};
for(int i=0;i<4;i++)
{
r[i]=&a[i];
cout << &a[i] << endl;
cout << a[i]<<endl;
}
for(int i=0;i<4;i++)
{
cout << r[i] << endl;
cout << *r[i] << endl;
}
return 0;
}
我最近开始研究指针数组。有人可以帮我找出上述程序中的错误..
我附上了在 windows 和 linux 平台上运行时的结果截图。
在 Windows 上,*r[] 和 a[] 的地址匹配,但值仍然不匹配。
在 linux 上,有时会显示“BUS ERROR”,有时会显示“Segmentation fault”。
如果有人解释“BUS ERROR”是什么意思会更好?为什么它会出现在这个程序中。