C/C++如何返回一个数组啊?

我比如有这样一个类Ctest,类里面有个数组不是共有的,我想要写一个方法来取出这个数组,但是下面这样好像不行,求蛋疼人士指点#include"stdio.h"classC... 我比如有这样一个类 Ctest,类里面有个数组不是共有的,我想要写一个方法来取出这个数组,但是下面这样好像不行,求蛋疼人士指点
#include "stdio.h"

class Ctest
{
protected:
char a;
int b[5];

public:
Ctest()
{
memset(this, 0, sizeof(Ctest));
}

//这里想要一个得到整个数组的方法
int *Getb( void )
{
return b;
}

};

int main()
{
Ctest ctest;
int x[5];
//这里我想把类里面的数组取出来

return 0;
}
展开
 我来答
White_MouseYBZ
2015-09-21 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6587万
展开全部
在C/C++中是不允许返回数组的,只能返回数组的指针。但这样做危险性很大,如果返回的是被调函数中定义的自动型数组,函数结束后数组空间已经不受代码控制了,通过返回的指针在主调函数中操作这块空间会产生不可预料的结果。所以一般应在主调函数中声明数组,把它的指针传给被调函数,在被调函数中通过这个指针直接操作主调函数中的数组。也可以在被调函数中动态声明数组,将它的指针返回给主调函数进行后续操作,但不能忘记在操作完毕后释放动态数组,不然会产生内存泄漏问题……
歓聫8o
2010-07-16 · 超过14用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:0
展开全部
你的意思不是不用类ctest中的数组去初始化数组x?如果是那样的话,就试一试下面的吧:
for(int i=0;i<5;i++)
x[i]=*(ctest.Getb()+i);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
非常HAPPY
2010-07-17
知道答主
回答量:13
采纳率:0%
帮助的人:19.7万
展开全部
为什么不行?你希望怎么个取法呢?这样不知道是不是你要的意思啊~赋初值啥的我就随便写了……下面的不知道有没有帮助
class Ctest
{
protected:
char a;
int b[5];

public:
Ctest()
{
b[0]=1;
b[1]=2;
b[2]=3;
}

//这里想要一个得到整个数组的方法
int *Getb( void )
{
return b;
}

};

int main()
{
Ctest ctest;
// int x[5];
int * b=ctest.Getb();
for(int j=0;j<3;j++)
cout<<*b++;
//这里我想把类里面的数组取出来

return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式