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

来源:互联网 发布:泰拳教学软件 编辑:程序博客网 时间:2024/06/11 16:15

按条件返回数组引用:


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;elsereturn  arr2nd;}StructOne  *  (&S)[9][10] = GetArr( bIs1st , arr1 , arr2 ) ;


0 0
原创粉丝点击