推 ianfang:你哪有長度剛好 字串最後還要放'\0' 06/18 18:49
→ subeyes:那麼為什麼第二列的str2還是可以順利印出呢? 06/18 21:25
推 ianfang:C不做邊界檢查 這是無法預期的結果 運氣好罷了 06/18 22:19
→ subeyes:但我試過很多次 每一次都是str1抓不到 str2抓得到 06/18 23:07
→ subeyes:如果是機率問題 不是應該有時str1抓得到 有時str2抓不到? 06/18 23:08
→ subeyes:sry 因為我還不太瞭解為什麼會這樣 06/18 23:08
推 VictorTom:對於這種錯誤的程式碼造成的意外/不意外的結果.... 06/18 23:26
→ VictorTom:小弟我覺得asm/memory/register拉出來自己看吧.... 06/18 23:27
→ VictorTom:真有心研究的話, 是可以徹底了解運作的機制, 錯誤的原因 06/18 23:27
→ VictorTom:以及知道為什麼明明說是機率卻常常都是只有誰的問題.... 06/18 23:28
→ subeyes:好的 感謝二位的解答 :) 06/18 23:30
推 VictorTom:不然給您的簡單的提示, 不要只看%s印出來的字串.... 06/18 23:30
→ VictorTom:把str1與str2"每一個"都watch一下, 看看每一行執行完它 06/18 23:31
→ VictorTom:們的變化; 比如用memory看str1與str2, 或比較'稿剛'把 06/18 23:32
→ VictorTom:str1[0]~[4]與str2[0]~[4]都拉出來看一下.... 06/18 23:32
→ VictorTom:因為表面上是str1[0]被覆寫了'\0'所以才什麼都不印:) 06/18 23:34
推 VictorTom:您想了解原因, 就要找到為什麼str1[0]被錯誤覆寫到了. 06/18 23:36