注册 登录
编程论坛 C++教室

指针代替数组,输入后运行失败

narutosusdo 发布于 2011-11-10 12:14, 602 次点击
int *a=new int,b,c,d;
   for(b=0;b<=9;b++){
      cin>>*(a+b);
   }
   for(b=1;b<=9;b++){
       int *g;
       for(c=9;c>=b;c--){
           if(*(a+c)>=*(a+c-1))
               *g=*(a+c);
               *(a+c)=*(a+c-1);
               *(a+c-1)=*g;
       }
   }
   cout<<endl;
   for(b=0;b<=9;b++){
     cout<<a[b];
   }

代码哪里的问题
2 回复
#2
hxcet2011-11-24 10:49
int *a=new int,b,c,d;这里的d要去掉,因为你根本没用到,改为int *a=new int,b,c;
   for(b=0;b<=9;b++){
      cin>>*(a+b);
   }
   for(b=1;b<=9;b++){
       int *g;这里不要用指针,直接改为int g;指针是必须要有初始化的。
       for(c=9;c>=b;c--){
           if(*(a+c)>=*(a+c-1))
               *g=*(a+c);这里也相应改为g=*(a+c);
               *(a+c)=*(a+c-1);
               *(a+c-1)=*g;相应改为 *(a+c-1)=g;
       }
   }
   cout<<endl;
   for(b=0;b<=9;b++){
     cout<<a[b];
   }
#3
qq6054122542011-11-24 21:26
g的地址未知
或改为int *g=new int;
1