非计算机专业,好奇为什么会出现“程序依赖bug运行”的情况?
举个例子。
比如在c/c++语言里,这个写法是非法的,bug: int* fun(int nums[], size_t len) { int sth; char c1; float other; char c2; int tmpNum[len]; char str[len]; //do sth return tmpNum; }其中的tmpNum叫局部变量,它分配在栈上;当fun执行了return时,这块内存就被自动收回了,就不能再读写了。
但如果你不懂,你就是把tmpNum返回了;那么下游的使用者还真就能读到里面的值——内存是被收回了,但数据仍然在内存条上…。
相关推荐
最新更新
推荐阅读
为什么说耿直的人更容易吃亏?
有没有一个特别好用的Linux系统?
公立医生帮联系民营救护车,800 公里收费 2.8 万元,收费合理吗?救护车收费标准是什么?
为什么日本经济下降,大学排名跌至谷底,还有那么多人挤破脑袋去日本留学?
字节跳动技术副总裁开源了自己与Trae合作的首个项目,如何评价目前AI开发的水平?
为什么 macOS 并不差,可市场总敌不过 Windows?
Windows 为什么要有注册表而 Unix 就不需要?
苹果从 2026 年发布的 macOS 27 起不再兼容任何 Intel Macs,这背后原因有哪些?
怎么看待三十而已里说的养鱼让人玩物丧志,养鱼是魔鬼,是黑洞,养鱼毁三代鱼缸毁一生的话?
055一打一能不能打过阿利伯克?
猜你喜欢
关注我们

包装成型机械
网站首页
