weixin_42857515
weixin_42857515
采纳率100%
2020-04-18 23:31

为什么函数返回数组的时候需要将数组定义成全局变量,可以定义成局部变量吗?

已采纳

为什么函数返回数组的时候需要将数组定义成全局变量,可以定义成局部变量吗?

int v[10] = { 1,2,3,44,55,66,77,8,9,1 };
auto fun()->int(*)[10]
{
    //int v[10] = { 1,2,3,44,55,66,77,8,9,1 };
    return &v;
}
int main()
{
    auto t = fun();
    for (int i = 0; i <= 10; i++)
        cout << (*t)[i] << endl;
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 1年前

    不可以,因为局部变量堆栈会销毁。
    但是可以传那些有深拷贝构造函数的对象或者new出来的指针

    点赞 评论 复制链接分享