#include<iostream>
using namespace std;
int main()
{
int i;
char *str[3];
for(i=0;i<10;i++)
cin>>str[i];
for(i=0;i<10;i++)
cout<<str[i]<<endl;
return 0;
}
以上的程序是错误的,因为指针数组没有指向确定的地址,也就是我们所说的野指针。
如何改正呢?可以定义一个相同类型的数组(最好足够大),然后让指针数组指向这个同类型的数组。如下:
#include<iostream>
using namespace std;
int main()
{
int i;
char *str[10],a[10][20];
for(i=0;i<10;i++)
{
str[i]=a[i];
cin>>str[i];
}
for(i=0;i<10;i++)
cout<<str[i]<<endl;
cout<<endl;
return 0;
}
这样就可以保证指针数组不会出错啦!