怎么返回数组?
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;//这样不行吗?
}
这种方法是可以的
然而比较麻烦的事情是,你得到了这个地址之后,再访问某个单元中的内容