非計(jì)算機(jī)專業(yè),好奇為什么會(huì)出現(xiàn)“程序依賴bug運(yùn)行”的情況?
作者: 發(fā)布日期:2025-06-27 15:25:13
舉個(gè)例子。
比如在c/c++語(yǔ)言里,這個(gè)寫(xiě)法是非法的,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叫局部變量,它分配在棧上;當(dāng)fun執(zhí)行了return時(shí),這塊內(nèi)存就被自動(dòng)收回了,就不能再讀寫(xiě)了。
但如果你不懂,你就是把tmpNum返回了;那么下游的使用者還真就能讀到里面的值——內(nèi)存是被收回了,但數(shù)據(jù)仍然在內(nèi)存條上…。









