非計算機專業,好奇為什么會出現“程序依賴bug運行”的情況?
作者: 發布日期:2025-06-27 11:55:14
舉個例子。
比如在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返回了;那么下游的使用者還真就能讀到里面的值——內存是被收回了,但數據仍然在內存條上…。








