推 keyword1983:應該是那塊記憶體還沒被其他程式用到 "值"暫時沒變 05/15 07:48
推 ggg12345:如果是static linker,又有做range,size check會有錯嗎? 05/16 07:44
→ bobhsiao:2F: 請看 C_and_CPP 版置底的「新手十二誡」第6條 05/16 08:58
推 ggg12345:出錯是compiler對function內local array使用stack臨時配 05/16 14:04
→ ggg12345:置又再重用同一stack,才會有pointer跟著消失/覆蓋問題, 05/16 14:07
→ ggg12345:如果靜態配置(另配stack或linker給一段data space)就不出 05/16 14:10
→ ggg12345:錯,這是該語言使用stack配置local variable才造成的.如果 05/16 14:13
→ ggg12345:現該問題, 是對該待進一步使用的local variable欠宣告. 05/16 14:22
→ ggg12345:出 應該 缺指定 05/16 16:11
→ bobhsiao:回樓上,以C來說,local var就是用stack,所以C不能這樣做 05/16 20:41
→ bobhsiao:方法1:用 malloc 可行但後續使用容易忘記free 05/16 20:42
→ bobhsiao:方法2:用static var,缺點:thread unsafe且str一直佔ram 05/16 20:44
→ bobhsiao:方法3:由caller準備好一塊空間傳入,func內不做記憶體管理 05/16 20:45
推 meteor260:還是要改,否則到時後真的會找不到錯誤喔== 05/18 19:30