推 LPH66: 你超界了, 你的 queue 只有五格但你推了八個數字進去03/28 18:16
→ LPH66: 說起來你都有寫 isFull 就拿來用啊03/28 18:16
→ LPH66: 啊, 我看到問題了: 當你 dequeue (del) 之後 front 就不是003/28 18:18
→ qazStarStar: 我是故意讓他超界以測試isFull03/28 18:18
→ LPH66: 問題應該會發生在 26 行這個 add(1) 時03/28 18:18
→ LPH66: 那你就要考慮這個時候東西要存在哪裡, isFull 要怎麼改寫等03/28 18:19
→ LPH66: 總之結論還是超界03/28 18:20
→ qazStarStar: 好的 我等等改寫isFull()看看,那請問front為什麼會03/28 18:34
→ qazStarStar: 在我文中的位置被改值呢03/28 18:34
→ qazStarStar: 照理來說那行是動不到front的03/28 18:35
→ ecniv: 19,20行調換順序試試? 猜是超界而複寫到queue後面的變數03/28 18:49
→ ilikekotomi: 找可以看記憶體位置的debugger看03/28 23:29
→ sarafciel: 你覺得動不到那是你覺得 就好像你覺得可以超界存取陣列03/28 23:41
→ sarafciel: 也沒事一樣 你可以試著在Java或C#之類的語言寫看看同樣03/28 23:42
→ sarafciel: 邏輯的code,包準exception炸到你飛天XD03/28 23:43
謝謝各位
我接下來也有方向可以找資料了
話說我這個現象有沒有專門關鍵字可以咕狗呢
※ 編輯: qazStarStar (115.82.244.220), 03/29/2019 00:54:40
推 LPH66: 會被改到的原因就是超界, 就只是它正好在你超界存取的位置03/29 08:51
→ adrianshum: 去看看第二誡吧...03/29 10:52
終於搞定了
感謝大家
※ 編輯: qazStarStar (101.12.172.4), 03/29/2019 20:52:30