码迷,mamicode.com
首页 > 其他好文 > 详细

记一次源码分析

时间:2018-12-23 00:26:35      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:本地   nbsp   mingw   环境   直接   temp   释放   不用   span   

首先分析一段很短的代码 

#include<iostream>
#include<vector>
using namespace std;

vector<int> getdata(){
    vector<int> v{2,3,4,5,6};
    // return std::move(v);
    return v;
}

int main()
{
    //vector<int> temp(getdata());
   auto b=begin(getdata());
   cout<<*b;
   //以下方式输出正常
   for(auto i: getdata()){
      cout<<i;
   }
return 0; }

这段代码是错的,里面出现了一个很容易犯得bug/如果函数中有建立本地对象并需要返回时,只能返回对象,不能返回指针或引用,因为函数调用完后,这个对象也就会随之进行析构(释放),但是如果我们试着返回一个vector的本地对象时然后对这个本地对象直接调用begin()函数得到的却不是我们想要的,然后我就去单步调试了/去挑战

//说明环境 我用的是mingw编译器 g++

首先分配内存,这个肯定不用多说

 

记一次源码分析

标签:本地   nbsp   mingw   环境   直接   temp   释放   不用   span   

原文地址:https://www.cnblogs.com/jijiboy/p/10162857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!