C++用new动态分配内存空间赋值的问题
int_tmain(intargc,_TCHAR*argv[]){intn;KN*p=newKN;KN*Root=newKN;int*Ps=NULL;cout<<"请输入...
int _tmain(int argc, _TCHAR* argv[])
{
int n;
KN *p = new KN;
KN *Root = new KN;
int *Ps=NULL;
cout<<"请输入维度:";
cin>>n;
Ps= new int[n];
Initate(n);
cout<<" 请选择操作:"<<endl;
cout<<"1 插入一个点"<<endl;
cout<<"2 查找一个点"<<endl;
cout<<"3 删除一个点"<<endl;
char c;
cin>>c;
switch(c)
{
case '1':
{
cout<<"请输入点的坐标:";
for(int i=0;i<n;i++ )
{
scanf("%d",&(*Ps));
Ps++;
}
Ps=Ps-n;
p->Pos=Ps;
Insert(n,Root,p);
}break;
case '2': Search(n,Root,p);break;
case '3': Delete();break;
default: cout<<"没有该选项!";break;
}
return 0;
}
编译没问题能执行 但是case1 for循环输入数据后就报错了 这是怎么回事啊 展开
{
int n;
KN *p = new KN;
KN *Root = new KN;
int *Ps=NULL;
cout<<"请输入维度:";
cin>>n;
Ps= new int[n];
Initate(n);
cout<<" 请选择操作:"<<endl;
cout<<"1 插入一个点"<<endl;
cout<<"2 查找一个点"<<endl;
cout<<"3 删除一个点"<<endl;
char c;
cin>>c;
switch(c)
{
case '1':
{
cout<<"请输入点的坐标:";
for(int i=0;i<n;i++ )
{
scanf("%d",&(*Ps));
Ps++;
}
Ps=Ps-n;
p->Pos=Ps;
Insert(n,Root,p);
}break;
case '2': Search(n,Root,p);break;
case '3': Delete();break;
default: cout<<"没有该选项!";break;
}
return 0;
}
编译没问题能执行 但是case1 for循环输入数据后就报错了 这是怎么回事啊 展开
1个回答
2013-11-28
展开全部
scanf("%d",&(*Ps)); ps本身就是一个指针,直接用就可以了,scanf("%d",Ps);
你那样写ps本身是空的*取值符号取不到数据就错了。
你那样写ps本身是空的*取值符号取不到数据就错了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询