C_and_CPP 板


LINE

其實我不知道要怎麼下標題才好,因為我也不知道問題出在哪邊,我猜可能是記憶體的問 題,可是我第一次遇到這種問題,所以想問看看有沒有人知道,還請不吝回答,謝謝。 程式碼: // 宣告部分 int Strength = 999; int Agility = 999; . . . . int tmp_Str; int tmp_Agi; char answer; // 運作部分 . . . . . tmp_Str = Strength; tmp_Agi = Agility; rewind(stdin); _getch(); . . . (省略用printf畫圖的部分) . . printf("1.攻擊 2.技能 3.逃跑(回合數:1 / 5)\n"); printf("tmp_Agi = %d", tmp_Agi); printf("> "); scanf("%s", &answer); if (answer == '1') { printf("tmp_Agi = %d", tmp_Agi); . . . . } https://i.imgur.com/r6w9W8g.png (執行的結果圖) 發生的問題是當使用者輸入答案後,本來存在tmp_Agi裡面的數字會產生改變,可是我沒動 過這個變數,用單步執行也找不出問題來。不過如果在answer上面隨便宣告一個無用的int 變數,就可以避免這個問題發生,如下所示: int tmp_Str; int tmp_Agi; int asdf; char answer; 所以我猜大概是記憶體配置的問題,但實際上我也不太清楚,因為寫程式到現在第一次發 生這問題,所以還請知道答案的人可以告訴我,謝謝。 -- 廚廚復廚廚,木蘭中路廚;不聞支援聲,唯見三嘆息; 問女何冥門,問女何坦營,前線有冥門,據點有坦營。 昨夜軍管區,文賓大點兵;國任十二場;場場對AT; 前線無防滿,隊友無鑲嵌;願為M盾戰,從此發佛心。 東路被放生,西路被蓋傷,南路被集火,北路被肛肛。 ~選自卡薩多民歌《木蘭詩》 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.158.76.133
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1525103380.A.7F0.html ※ 編輯: allen20937 (182.158.76.133), 04/30/2018 23:50:47 ※ 編輯: allen20937 (182.158.76.133), 04/30/2018 23:51:07
1F:推 Raymond0710: scanf("%c", &answer) 04/30 23:54
※ 編輯: allen20937 (182.158.76.133), 05/01/2018 00:01:57
2F:→ allen20937: 感謝上面的回答,改成%c之後就正常了。 05/01 00:06
3F:→ allen20937: 可以請問一下為何輸入的類型是字元跟字串的差異會造成 05/01 00:07
4F:→ allen20937: 其他變數的改變嗎? 05/01 00:08
5F:→ FancyWing: &answer 是對位址做寫入,而不是變數 05/01 00:14
6F:→ FancyWing: %c 1 byte, %s >1 byte 05/01 00:15
7F:→ FancyWing: 然後你兩個變數恰好是連續位置,寫入大於1Byte就覆蓋了 05/01 00:17
8F:→ FancyWing: 是 pointer 常會遇到的狀況,所以請多小心 05/01 00:19
9F:→ allen20937: 謝謝上面的回答,又學到東西了 05/01 07:33
10F:推 cphe: 可以想像你儲存一個'1'跟"1"在記憶體裡實際的差異,如上面 05/02 01:30
11F:→ cphe: 所說直接用位址操作超出預期範圍就有可能踩到其他東西(相鄰 05/02 01:30
12F:→ cphe: 位址的資料),嚴重的話ap可能直接crash。c的字串操作其實 05/02 01:30
13F:→ cphe: 很麻煩,要算很精準,也就是要非常小心 05/02 01:30







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP