非计算机专业,好奇为什么会出现“程序依赖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返回了;那么下游的使用者还真就能读到里面的值——内存是被收回了,但数据仍然在内存条上…。
相关推荐
最新更新
央行宣布八项重磅金融开放举措,将设立数字人民币国际运营中心等,释放了哪些信号?
西方人是怎么发现地球是圆的的?
紧身牛仔裤看起来不正经,真的是这样吗?
伊以的对轰证明伊朗似乎没那么菜!美国会下场吗?
如何看待 Mac mini M4 支持可更换 SSD?
MiniMax Week第三天推出通用 Agent,体验如何?对行业会带来哪些影响?
为什么MacBook pro不用高刷新率的屏幕?
华为 HDC 发布 HarmonyOS 6 开发者 beta 版对应用开发者和鸿蒙生态有哪些影响?
做个web服务器,gin框架和go-zero怎么选?
网传《碟中谍 8》亏损可能超 14 亿,是真的吗?这背后的原因是什么?
推荐阅读
猜你喜欢
关注我们

包装用纸
网站首页
