[問題] 關於字串的宣告

看板C_and_CPP作者 (夢想。追逐)時間12年前 (2013/08/23 19:40), 編輯推噓14(14020)
留言34則, 19人參與, 最新討論串1/1
開發環境:codeblock 程式語言: C++ 問題: //下面這個可以正確執行 char *str; cout << "請輸入字串" << endl; cin>>str; cout<<str; //但是下面這個卻無法正確執行 char c; char *str; cout<<"請輸入一個字串:"; cin>>str; cout<<"請輸入想從字串中找出的字元:"; cin>>c; cout<<"在"<<str<<"當中全部共有個"<<c<<endl; 我記得宣告字串有兩種方式 一種是指標型char *str 一種是陣列型chat str[100] 但前者沒有配置記憶體 後者有~ 但是為什麼上面那個卻無法執行呢? 有哪位大大可以解惑 謝謝>< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 42.66.69.35

08/23 20:00, , 1F
就我看來你兩個都是錯的
08/23 20:00, 1F

08/23 20:01, , 2F
如果程式可以動的話那是運氣好
08/23 20:01, 2F

08/23 20:02, , 3F
第一個可以動~~其實我查完資料也覺得這樣宣告有誤
08/23 20:02, 3F

08/23 20:02, , 4F
但就是不知道為什麼第一個可以正確輸出?
08/23 20:02, 4F

08/23 20:14, , 5F
運氣好
08/23 20:14, 5F

08/23 20:20, , 6F
你沒說你輸入了什麼 結果跑出了什麼
08/23 20:20, 6F

08/23 20:21, , 7F
可能你運氣好輸入了容許範圍內的東西 所以沒出錯
08/23 20:21, 7F

08/23 20:28, , 8F
就是隨便gdijgisoh 輸入都可以正確輸出~~
08/23 20:28, 8F

08/23 20:31, , 9F
但是char *str = (char *)malloc(20); 改成這樣就OK~
08/23 20:31, 9F

08/23 21:10, , 10F
錯的就是錯的 運氣好就可以正常執行 不見得總是可正常執行
08/23 21:10, 10F

08/23 21:10, , 11F
你試都可以執行 也不代表別人的電腦就會有一樣的結果
08/23 21:10, 11F

08/23 21:22, , 12F
置底十三誡的第3誡 (咦, 進去看怎麼叫新手十誡?) 算版規3嗎?
08/23 21:22, 12F

08/23 21:27, , 13F
謝謝大家的指點,應該就是指標未配置記憶體的關係~
08/23 21:27, 13F

08/23 21:28, , 14F
其實原本我只是想了解為什麼第一個可以跑這樣..有點怪
08/23 21:28, 14F

08/23 22:16, , 15F
要考慮使用 std::string 嗎?
08/23 22:16, 15F

08/23 22:18, , 16F
string我有試過OK~~只是想多方嘗試並了解原因:D
08/23 22:18, 16F

08/23 23:36, , 17F
就是你"運氣好"用到一個合法的空間
08/23 23:36, 17F

08/24 00:11, , 18F
基本上置底那個13誡能完全了解並遵守就OK了
08/24 00:11, 18F

08/24 00:12, , 19F
還有 不是編譯過就代表妳是對的喔!
08/24 00:12, 19F

08/24 00:59, , 20F
錯的程式 沒有規定一定要當下當機給你看
08/24 00:59, 20F

08/24 00:59, , 21F
跑一萬次才當一次也有可能
08/24 00:59, 21F

08/24 01:01, , 22F
只有一塊門牌 卻沒有空間放物品 0.0!"
08/24 01:01, 22F

08/24 01:02, , 23F
有空間阿,不過那是路霸
08/24 01:02, 23F

08/24 01:52, , 24F
插一個牌子說隊伍從此排起但是沒規劃空間 你說呢
08/24 01:52, 24F

08/24 02:17, , 25F
放一塊門牌就想把整塊地拿來用,你劉正紅嗎?
08/24 02:17, 25F

08/24 03:42, , 26F
劉正紅超好笑XDDD
08/24 03:42, 26F

08/24 11:09, , 27F
哈哈 形容真好 我懂了!!!謝謝~~~~!!
08/24 11:09, 27F

08/24 17:59, , 28F
第一個能動運氣不錯.... @@a
08/24 17:59, 28F

08/24 18:01, , 29F
因為我剛剛好奇測一下 gcc on linux/mac, vs都會炸...
08/24 18:01, 29F

08/24 18:02, , 30F
不過出來的錯誤訊息僅vs比較容易判讀而已
08/24 18:02, 30F

08/25 00:07, , 31F
ck 大比喻真精確 XDDDDDy
08/25 00:07, 31F

08/25 09:51, , 32F
推 ck 大比喻!!
08/25 09:51, 32F

08/25 10:27, , 33F
劉政鴻後勁十足XDDDDD
08/25 10:27, 33F

08/25 14:24, , 34F
XDDDDDDDDDDDDDD
08/25 14:24, 34F
文章代碼(AID): #1I5qecba (C_and_CPP)