作者tjltd2000 (xiaoni0426)
看板C_and_CPP
標題[問題] pointer和switch結合的小問題
時間Thu Nov 23 22:57:46 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
dev c++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
小弟在練習queue時遇到的問題,題目是建立一個queueu有各種不同的功能
主要就是可以輸入資料存到queue裡面,然後練習queue的各種函式
剛開始打完後一直有問題,debug很久後不小心被我發現,但其實不是很懂為什麼
所以標題也只是猜測而已
以下問題正式開始
原本我的pointer和malloc是打在code裡注解那,但無法run
要改到第二個註解備註那才可行
餵入的資料(Input):
預期的正確結果(Expected Output):
印出front,rear,和queue裡所有資料
錯誤結果(Wrong Output):
不論要印front,rear都只會印出最後輸入的數字
要印出queue裡所有資料會全部都是最後輸入的數字
程式碼(Code):(請善用置底文網頁, 記得排版)
https://ideone.com/O6l0bZ
補充說明(Supplement):
阿我知道我表達有點障礙,希望各位大大別介意
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.156.139
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1511449070.A.83A.html
1F:→ galic: 91行!? 11/23 23:39
2F:推 KoenigseggG: 你用可以run的寫法,deQ也可以正確跑嗎? 11/24 12:04
3F:→ kingofsdtw: case內宣告變數需要{} 11/24 19:05
5F:→ kingofsdtw: 看人的coding sytle,在C++除非construct method 11/24 19:06
6F:→ kingofsdtw: 我不太喜歡宣告在case裡面 11/24 19:06
7F:→ galic: 就91行錯了吼 誰管data在哪裡宣告 11/24 19:16
91行應該是沒有問題的 我選function的地方可以正常使用
8F:→ kingofsdtw: QQ~ 抱歉誤解回錯 11/25 02:45
※ 編輯: tjltd2000 (115.82.134.70), 11/25/2017 10:46:17
9F:→ galic: 相信我 就是91行 改對再來討論 11/25 10:59
10F:→ caras: 91 行問題大了,超嚴重 11/25 13:13
11F:→ caras: 算是花式違反置底十三誡之第二誡 11/25 13:19
可是我在讀取哪種功能的地方是沒有問題的欸
12F:→ Lipraxde: 65應該是"!="? 11/25 15:22
※ 編輯: tjltd2000 (115.82.134.70), 11/26/2017 01:03:34
13F:推 steve1012: gdb 一步一步看自己試過了嗎? 11/26 05:15
14F:噓 Ommm5566: 可是我讀取陣列外的記憶體位置也沒問題的 11/26 07:27
15F:→ galic: 你貼那網頁下面輸出直接RE了 你跟我說讀取功能沒問題... 11/26 11:18
16F:→ Sanvean: 會全部都一樣是因為只有要一次記憶體空間,所有的 ptr 指 11/26 16:56
17F:→ Sanvean: 向同一個位址,所以會是最後一個輸入的值。 11/26 16:58
18F:→ Sanvean: 不過第 91 行真的是會有記憶體存取的問題就是了XD 11/26 17:02