怎么返回数组? double ** fea::CreatBB(void){ static double BB[8][4]; BB[3][3]=7; return BB;//这儿是错误的,怎么返回呢?} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这种情况,最好在外部声明数组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;} 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;//这样不行吗?}这种方法是可以的然而比较麻烦的事情是,你得到了这个地址之后,再访问某个单元中的内容 return &BB[3][3];//想得到 7 的话; 如果是 return bb 返回的是默认值----你没初始化就用那不就挂了 tracing(攀登者) 正解!想返回数组,应该用new或者malloc之类。 manbaum(砸锅上网) ------注意是:static变量 多谢 liuxiuk() ,确实没注意是 static。那样的话,就是必须先初始化一下。楼主所说的错误是因为类型不匹配。你的return BB的时候BB的类型可以被解释成double*[],或者double[][],但你的函数需要的返回是double**,当然会出错了。 直接用new申请一个内存快返回就可以了。多位数组通过指针时还是会退化的 下载分怎么获得很多啊 代理服务器问题! 看样子要去波导做软件开发了,不知道以后用VC的机会多不了,散分 大家救救我,help!!! 如何在一个DLG对话框上显示JPEG图片? 紧急寻求帮助,很无助了 win98作DCOM服务器要做那些设置?sos VC怎样将路径写入excel文件 关于对话框度量单位的问题 如何用程序画一个围棋的棋子的图形? 大家聊一聊前途100分相送 怎样获取本机目录信息
void fea::CreatBB(double BB[])
{
//添加函数实现代码
}
void fea::func()
{
double BB[8][4];
CreateBB(BB);
//其它代码
}
{
static double BB[8][4];
BB[3][3]=7;
return (double**)BB;//这样不行吗?
}
{
static double BB[8][4];
BB[3][3]=7;
return &BB;
}
{
static double BB[8][4];
BB[3][3]=7;
return &BB[3][3];//想得到 7 的话; 如果是 return bb 返回的是默认值
}
用了static的变量,变量不会因为这个类死掉而死掉
那返回地址当然可以
用
double** fea::CreatBB(void)
{
static double BB[8][4];
BB[3][3]=7;
return (double**)BB;//这样不行吗?
}
这种方法是可以的
然而比较麻烦的事情是,你得到了这个地址之后,再访问某个单元中的内容
----你没初始化就用那不就挂了
注意是:static变量
多位数组通过指针时还是会退化的