作者查詢 / weiclin
作者 weiclin 在 PTT [ C_and_CPP ] 看板的留言(推文), 共48則
限定看板:C_and_CPP
看板排序:
8F推: 只能跪了..06/30 12:26
7F推: 這篇? http://codereview.stackexchange.com/a/4947906/19 09:16
4F推: C++ Primer 5th Edition05/18 18:50
25F推: char str[] = "Hello" 等於 char str[6] = "Hello"04/13 10:19
26F→: 他是陣列, 只是編譯器幫你計算了長度04/13 10:19
27F→: 你可以自由修改陣列內的值,不會有問題04/13 10:22
28F→: char *str="Hello" 是一個指標指向系統某個唯讀的字串04/13 10:23
29F→: 你可以把他指到另一個字串,但不能改他: str[0]='N'04/13 10:24
9F推: 恭喜04/10 20:51
10F推: 看這個函式的宣告, 一般就兩個作法04/10 08:27
11F→: 一個是在函式內 malloc 然後複製好回傳04/10 08:28
12F→: 但要記得把回傳值 free 掉, 不然就 memory leak 了04/10 08:29
13F→: 另一個是在函式內有一個 static char buf[BUF_LEN]04/10 08:30
14F→: 直接複製到這個 buf 後回傳, 然後拿到的人就不用 free04/10 08:30
15F→: 但是就不能這樣用:f(copyStr(1,"abc"),copystr(2,"def")04/10 08:32
16F→: 題外話,寫這種互動式的要處理輸入真是苦差事....04/10 08:34
17F→: 稍微玩了一下,僅供參考 http://ideone.com/R5uZx704/10 08:35
18F→: 只改動一點你的函式,所以他還是會炸掉的04/10 08:42
3F推: 推不正常作法 xD04/08 04:17
11F→: 就如你想的是把 + 去除, 類似 string.at(1)04/04 20:58
15F→: 由於回傳的是 reference, 取 & 就會變成 char*04/04 21:02
17F→: 這個 char* 指向 string 儲存資料的空間04/04 21:14
18F→: 所以你就可以像在用 char array 那樣使用它04/04 21:14
41F推: 指標就是記憶體位址, 所以你可以宣告 char *p = &code[1]04/05 04:40
42F→: 我想你搞不懂的地方應該是 std::string 怎麼運作的04/05 04:41
43F→: string內部會管理一塊記憶體位址用來儲存資料04/05 04:44
44F→: 在不支援string的地方,你需要有辦法將string變成char*04/05 04:48
45F→: 例如用到某些 C 語言實作的 API, 就不會支援 string04/05 04:49
46F→: 所以會用到 .c_str .data .at 或陣列運算子04/05 05:02
47F→: c++11以前,string內部的記憶可能不連續,或非null ending04/05 05:03
48F→: 所以 .c_str 用來確保你拿到合法的 char array04/05 05:04
49F→: 而後面三個方法你會直接拿到string內部那塊記憶體04/05 05:04
50F→: 所以 string[0] 是內部的第一個字元(by reference)04/05 05:05
51F→: &string[0] 就是取得內部記憶體第一個字元的指標04/05 05:06
52F→: 你可以用來代替 .c_str 但是風險自負04/05 05:13
53F→: c++11之後就可以很安全的用 &string[0] 代替 .c_str04/05 05:14
54F→: 因為c++標準規定string內部應該是連續且null terminated04/05 05:15
55F→: 上面那句更正, 是c++11標準04/05 05:15
56F→: 我們用 std::string 來幫我們管理字串的 malloc 及 free04/05 05:20
57F→: 然後又對 string 取得的記憶體區塊上下其手,就是這樣了04/05 05:22
2F→: for(i=0;i==0;i++) 你不覺的那個 i==0 怪怪的?04/01 23:11
3F→: 另外 printf("%d", &c) 這個 &c 也不是印出 c 的值04/01 23:13
12F推: 那你可以接受將通知下一台的邏輯移到新的類別嗎?04/01 19:53
13F→: 例如生產線類別,裡面很多機台,就負責把產出餵給下一台04/01 19:55
14F→: 或許你可以參考 Domain Driven Design 的思路04/01 19:58
19F→: 設計類別如果能對應到現實的概念,能幫助理解04/02 00:34
20F→: 但如果不適合還硬套的話就只有反效果04/02 00:48