非计算机专业,好奇为什么会出现“程序依赖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返回了;那么下游的使用者还真就能读到里面的值——内存是被收回了,但数据仍然在内存条上…。
相关推荐
最新更新
OpenAI 宣布使用 AMD 的 MI300 X 和 MI450 芯片,这两款芯片在技术上有何亮点?
大家在做登录功能时,一般怎么做暴力破解防护?
flutter是***跨平台最优解吗?
真的有这种又苗条身材又爆炸的么?
从技术上看,cloudflare比其他公司牛在哪儿?
程序员不租房住车里,称三年多省了差不多十万,被质疑占用公共***,怎样看他的选择?这算占用公共***吗?
当年《诛仙》第一部的成功在于什么?
Golang vs Rust vs Dlang 哪个更有前途,哪位大牛这 3 门语言都用过?
Golang与Rust哪个语言会是今后的主流?
字节引入Rust是否代表J***a的缺点Go也没解决?
推荐阅读
猜你喜欢
关注我们

包装相关设备
网站首页
