函数返回3维数组的指针,该如何解决
函数返回3维数组的指针
然后在主函数中
输出:7
如果在主函数中用:
则输出是
不明白是什么原因,求大家解答!
------解决思路----------------------
返回临时变量是错误的。
------解决思路----------------------
如1楼所说,func()函数执行结束后,iArr的空间就释放掉了
------解决思路----------------------
static int iArr[3][3][3] = {1,2,3,4,5,6,7,8,9};
int* func()
{
int iArr[3][3][3] = {1,2,3,4,5,6,7,8,9};
return (int*)iArr;
}
然后在主函数中
int *p = func();
cout<<*(p + 6)<<endl;
输出:7
如果在主函数中用:
int *p = func();
for(int i = 0;i < 9;i++)
cout<<*(p + i)<<endl;
则输出是
不明白是什么原因,求大家解答!
------解决思路----------------------
int iArr[3][3][3] = {1,2,3,4,5,6,7,8,9};
return (int*)iArr;
返回临时变量是错误的。
------解决思路----------------------
如1楼所说,func()函数执行结束后,iArr的空间就释放掉了
------解决思路----------------------
static int iArr[3][3][3] = {1,2,3,4,5,6,7,8,9};