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

帮忙返回个数组到主函数里

平凡不在 发布于 2009-08-08 08:40, 899 次点击

int ff()
{
int a[5]={1,2,3,4,5};
}
帮忙把a数组返回到主函数里(用C++语言)
[qq]923478106[/qq]
12 回复
#2
xufen3402009-08-08 10:36
#include<iostream>
using namespace std;
int* ptr=new int[5];
int* ff()
{
    int a[5]={1,2,3,4,5};
    for(int i=0;i<5;i++){
    ptr[i]=a[i];
    }
    return ptr;
}
 
int main(int argc,char** argv)
{
    int* q;
    q=ff();
    for(int i=0;i<5;i++){
        cout<<"a["<<i<<"]="<<q[i]<<endl;
    }
}  
#3
xufen3402009-08-08 21:49
犯了大错了,声请内存后没释放,立即改正。
#include<iostream>  
using namespace std;  
int* ptr=new int[5];  
int* ff()  
{  
    int a[5]={1,2,3,4,5};  
    for(int i=0;i<5;i++){  
    ptr[i]=a[i];  
    }  
    return ptr;  
}  
 
int main(int argc,char** argv)  
{  
    int* q;  
    q=ff();  
    for(int i=0;i<5;i++){  
        cout<<"a["<<i<<"]="<<q[i]<<endl;  
    }  
    delete ptr;
    return 0;
}  
#4
平凡不在2009-08-10 16:19
感谢
谢谢楼上的两位 祝你们天天开心。
#5
missiyou2009-08-10 21:08

#include<iostream>   
using namespace std;  
template< class T class Tint> //模板挺好的
T  ff(T Start, T End, Tint index)

{
        
T p = Start;
while( p < (Start + index) )
          *( p ++)=*(End ++)
  return Start;
}
int main(int argc,char** argv)   
{   
int a[5]={1,2,3,4,5};  
int* ptr=new int[5];  
int *p;
p = ff( ptr, a, 5);
for(int i=0;i<5;i++){   
        cout<<"a["<<i<<"]="<<q[i]<<endl;
}

写玩玩。

#6
ly8610142009-08-11 10:45
回复 楼主 平凡不在

#include <iostream>
using namespace std;
 
 
int* ff()   
{   
    static int a[5] = {1, 2, 3, 4, 5};   
     
    return a;   
}  
 
int main()
{
     
    int* q = ff();
 
    for(int i = 0; i != 5; ++i)
    {   
        cout << "a[" << i << "] = " << q[i] << endl;   
    }  
     
    return 0;
     
}
#7
平凡不在2009-08-11 13:29
感谢
谢谢五楼、六楼的,感谢你们的帮助!!!!!!!!!!!
#8
平凡不在2009-08-11 13:35
版主:
    那个T是什么意思呀
#9
jianlingff2009-08-11 21:56
有点不懂这个






 
SIGNATURE-------------------------------------------------
 http://www. 大卡车运贷小游戏
#10
missiyou2009-08-11 23:24
就是模板了,  T 就是代替一下 int *
这样一定义,就是, int * p了
#11
平凡不在2009-08-12 15:53
谢啦!!!!!!!!!!!!!版主,我明白了!
#12
missiyou2009-08-18 21:15
template< class T class Tint> //模板挺好的
T  ff(T Start, T End, Tint index)
 
{
         
T p = Start;
while( p < (Start + index) )
          *( p ++)=*(End ++)
  return Start;
}

晕这个还可简化代码
template< class T > //模板挺好的  
T  ff(T Start, T End)  
  
{  
         
T p = Start;  
while( (*p ++ = *End ++) != 0 ) ;
            
  return Start;  
}
好了
#13
easycpp2009-08-26 15:43
在C++现有的标准里没有一个高效直观的方法来实现从函数内部返回数组的方案,我个人考虑了几种方案但都不是很完美,大家可以参考:http://www.
的解释。
1