其他分享
首页 > 其他分享> > 临时变量的坑

临时变量的坑

作者:互联网

//class MA; MA *ma = new MA();

class QT {

   fun1()
 {   struct_type info={0};//结构体中包含机器名字,机器属性
     //获取机器名字
     ma->getmachine(&info);
      //使用机器名字
     ma->createmachine(info.name);//内部逻辑是,保存设备名字的“指针”

}

fun2()
{
  ///打开机器
  ma->openmacine(){使用了保存的设备名指针,发现机器名字错乱}
}
}//qt

原因:设备信息的info变量是一个临时的,出了这个函数,局部变量的内存就变掉了,所以在你用fun2去使用保存的机器信息指针的时候,指针所指向内存的内容已经不是fun1的时候获取的内容了;

函数内的局部变量存储在栈区,栈区的局部变量,在函数执行完之后自动释放;

标签:info,机器,变量,临时,局部变量,ma,MA,指针
来源: https://www.cnblogs.com/8335IT/p/16186776.html