曾经沧海 周深:会C++的快进来帮一下!

来源:百度文库 编辑:高校问答 时间:2024/04/27 22:51:22
#include<iostream.h>
void main()
{
char *p[12];
int i=0;
do
{
cout<<"输入您想输入的第"<<++i<<"个字符串"<<endl;
cin>>*(p+i);
i++;
}while(i<12);
for(i=0;i<12;i++)
{
cout<<"您输入的第"<<i+1<<"个字符为"<<*p<<'\n';
}
}
哪里错了啊?编时没有错误,但是执行时出错了,请问是为什么呢?
谢谢各位了,但是编时无错,但执行时第二步还是有错啊!

#include<iostream.h>
void main()
{
char *p[12];
char a[12];
int i=0;
for(i=0;i<=11;i++)
p[i]=&a[i];//p没有指向不能引用
do
{
cout<<"输入您想输入的第"<<++i<<"个字符串"<<endl;
cin>>*(p+i);
i++;
}while(i<12);
for(i=0;i<12;i++)
{
cout<<"您输入的第"<<i+1<<"个字符为"<<*p<<'\n';
}
}

cout<<"输入您想输入的第"<<++i<<"个字符串"<<endl;
cin>>*(p+i);
i++;

do循环每执行一次,i的增幅为2

p的各指针没有指向可用的数组,是野指针,cin的话会对非法内存区域进行写操作,当然出错。

删掉那个for语句试试