error C2440: “初始化”: 无法从“StructOne *(*)[10]”转换为“StructOne *[9][10]”

按条件返回数组引用:


StructOne  *  (arrS)[9][10] = bIs ? arr1: arr2;

这是一句合法C++代码,在安卓NDK和XCODE下都编译运行正常,但是VS2005里编译错误:
: error C2440: “初始化”: 无法从“StructOne *(*)[10]”转换为“StructOne *[9][10]”
        没有转换为数组类型,但有转换为数组的引用或指针





最后只能改成这样:

StructOne* (&GetArr(bool bIs1st,
	   StructOne  *  (&arr1st)[9][10],
	   StructOne  *  (&arr2nd)[9][10]))[9][10]
{
	if( bIs1st )
		return arr1st;
	else
		return  arr2nd;
}

	
StructOne  *  (&S)[9][10] = GetArr( bIs1st , arr1 , arr2 ) ;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值