主题:怎么输出的是地址。。。
#include<iostream>
using namespace std;
struct Student
{
int num;
char name[10];
};
int main()
{
int i,n,*b=NULL;
char *c=new char[1025];
//char c[3];
Student *stu=NULL;
while(1)
{
gets(c);
if(strcmp(c,"S")==0)
{
stu=new Student;
cin>>stu->num>>stu->name;
}
else if(strcmp(c,"D A")==0)
{
if(b)
{
for(i=0;i<n;i++)
cout<<b[i]<<" ";
cout<<endl;
delete b;
b=NULL;
}
else
cout<<"该指针释放失败"<<endl;
}
else if(strcmp(c,"D S")==0)
{
if(stu)
{
cout<<stu->num<<" "<<stu->name <<endl;
delete stu;
stu=NULL;
}
else
cout<<"该指针释放失败"<<endl;
}
else if(strcmp(c,"Q")==0)
break;
else //B 5
{
n=c[2]-48;
b=new int[n+1];
for(i=0;i<n;i++)
cin>>b[i];
}
}
return 0;
}
其中else 接收:A空格6 B空格5 之类的。。。。
如上程序输入
A 6
1 2 3 4 5 6
D A
后怎么不对的。输出的是5个地址的。高手指教。。。
using namespace std;
struct Student
{
int num;
char name[10];
};
int main()
{
int i,n,*b=NULL;
char *c=new char[1025];
//char c[3];
Student *stu=NULL;
while(1)
{
gets(c);
if(strcmp(c,"S")==0)
{
stu=new Student;
cin>>stu->num>>stu->name;
}
else if(strcmp(c,"D A")==0)
{
if(b)
{
for(i=0;i<n;i++)
cout<<b[i]<<" ";
cout<<endl;
delete b;
b=NULL;
}
else
cout<<"该指针释放失败"<<endl;
}
else if(strcmp(c,"D S")==0)
{
if(stu)
{
cout<<stu->num<<" "<<stu->name <<endl;
delete stu;
stu=NULL;
}
else
cout<<"该指针释放失败"<<endl;
}
else if(strcmp(c,"Q")==0)
break;
else //B 5
{
n=c[2]-48;
b=new int[n+1];
for(i=0;i<n;i++)
cin>>b[i];
}
}
return 0;
}
其中else 接收:A空格6 B空格5 之类的。。。。
如上程序输入
A 6
1 2 3 4 5 6
D A
后怎么不对的。输出的是5个地址的。高手指教。。。