舉個(gè)例子。
比如在c/c++語(yǔ)言里,這個(gè)寫法是非法的,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)收回了,就不能再讀寫了。
但如果你不懂,你就是把tmpNum返回了;那么下游的使用者還真就能讀到里面的值——內(nèi)存是被收回了,但數(shù)據(jù)仍然在內(nèi)存條上…。
