临时变量的坑
//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的时候获取的内容了;
函数内的局部变量存储在栈区,栈区的局部变量,在函数执行完之后自动释放;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2017-04-24 c++实现中的一些注意 事项