非计算机专业,好奇为什么会出现“程序依赖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返回了;那么下游的使用者还真就能读到里面的值——内存是被收回了,但数据仍然在内存条上…。
相关推荐
最新更新
推荐阅读
猜你喜欢
为何雷军天天健身,却无健身痕迹?
婆婆早晚喝一瓶纯牛奶,每一次还剩半箱就开始催儿子买。每次听见她喊她儿子买我就不太舒服我是不是太小气?
阿里网盘为什么没有动静了?
特厨隋坡探店成都快餐店,给出80分以上的高分,为什么评分远高于大饭店?
老公每晚都想要怎么办?
有哪些开源web应用漏洞扫描工具?
马斯克宣布星舰将配备 42 台发动机,如何评价这一设计?
在NAS上安装了什么应用,让你的生活体验有了巨大的提升?
蜂鸟音乐指控邓紫棋侵权,要求 48 小时内下架重录歌曲,邓紫棋回应「不会下架」,这一指控合理吗?
江西通报救护车 800 公里收费 2.8 万「不合理,暂停医院转运服务」,该医院要承担怎样的法律责任?
关注我们

包装用纸
网站首页
