首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

如何返回数组

2012-01-26 
怎么返回数组?double**fea::CreatBB(void){staticdoubleBB[8][4]BB[3][3]7returnBB//这儿是错误的,怎

怎么返回数组?
double   **   fea::CreatBB(void)
{
static   double   BB[8][4];
BB[3][3]=7;
return   BB;//这儿是错误的,怎么返回呢?
}

[解决办法]
这种情况,最好在外部声明数组
void fea::CreatBB(double BB[])
{
//添加函数实现代码
}
void fea::func()
{
double BB[8][4];
CreateBB(BB);
//其它代码
}

[解决办法]
double** fea::CreatBB(void)
{
static double BB[8][4];
BB[3][3]=7;
return (double**)BB;//这样不行吗?
}
[解决办法]
double * fea::CreatBB(void)
{
static double BB[8][4];
BB[3][3]=7;
return &BB[3][3];//想得到 7 的话; 如果是 return bb 返回的是默认值
}
[解决办法]
在栈上分配的内存是不能返回的
[解决办法]
在栈上分配的内存是不能返回的

static变量

-----

经过实验,以上的方法均不可行。

怎么不行?
[解决办法]
当然可以了
用了static的变量,变量不会因为这个类死掉而死掉
那返回地址当然可以

double** fea::CreatBB(void)
{
static double BB[8][4];
BB[3][3]=7;
return (double**)BB;//这样不行吗?
}
这种方法是可以的
然而比较麻烦的事情是,你得到了这个地址之后,再访问某个单元中的内容

热点排行