char* a[4] ;//= new char[];
char *str = new char;
/*input data*/
cout<<"please input ten String:\n";
for(i=0;i<N;i++)
{
cin>>str;
a[i] = new char[strlen(str)+1];
a[i]= str;
}
cout<<"output your input String:\n";
for(i=0;i<N;i++)
{
cout<<a[i];
cout<<" ";
}
cout<<endl;运行结果如下:
please input ten String:
aa
vv
ss
dd
output your input String
dd dd dd dd怎么全是 bb了,为什么啊
char *str = new char;
/*input data*/
cout<<"please input ten String:\n";
for(i=0;i<N;i++)
{
cin>>str;
a[i] = new char[strlen(str)+1];
a[i]= str;
}
cout<<"output your input String:\n";
for(i=0;i<N;i++)
{
cout<<a[i];
cout<<" ";
}
cout<<endl;运行结果如下:
please input ten String:
aa
vv
ss
dd
output your input String
dd dd dd dd怎么全是 bb了,为什么啊
把 char* a[4];改为char a[4];
然后,在循环中
a[i] = &str;
把字符保存进来就行了。
对指针操作要小心的:)
替代
a[i]= str;
char* str= new char;
/*input data*/
cout<<"please input ten String:\n"; for(i=0;i<N;i++)
{
cin>>str;
//a[i] = new char[strlen(str)+1];
//a[i]= str;
//这里就错了
memcpy(a[i],str,strlen(str)+1);
}
cout<<("Before sorted \n"); for(i=0;i<N;i++)
{
cout<<a[i];
cout<<" ";
}
cout<<endl;
cout<<"please input ten String:\n";
for(i=0;i<N;i++)
{
char *str = new char;
cin>>str;
a[i] = new char[strlen(str)+1];
a[i]= str;
delete str;
}/*别忘了释放指针*/
delete[] a;
这次总算行了吧
char* a[N];
cout<<"please input ten String:\n";
for(i=0;i<N;i++)
{
char *str = new char;
cin>>str;
a[i] = new char[strlen(str)+1];
a[i]= str;
delete str;
}这里不能加delete str;,要注释掉的吧
{
char *str = new char;
cin>>str;
a[i] = new char[strlen(str)+1];
memcpy(a[i],str,strlen(str)+1); delete[] str;
}
/*别忘了释放指针*/
delete[] a;执行出错,该如何释放呢
在循环中删除指针是错误的,惭愧
char* a[4] ;//= new char[];
/*input data*/
cout<<"please input ten String:\n";
for(i=0;i<N;i++)
{
char *str = new char;
cin>>str;
a[i] = new char[strlen(str)+1];
a[i]= str;
}
cout<<"output your input String:\n";
for(i=0;i<N;i++)
{
cout<<a[i];
cout<<" ";
}
cout<<endl;for(i=0;i<N;i++)
{
delete a[i];
}
{
delete a[i];
}
这里还是不行吗,会报错的
for(i=0;i<N;i++)
{
char *str = new char[2];
cin>>str;
a[i]= str;
}
cout<<"output your input String:\n";
for(i=0;i<N;i++)
{
cout<<a[i];
cout<<" ";
}
cout<<endl;
for(i=0;i<N;i++)
{
delete a[i];
}