: big: a=0x1234, b=0x5678
: little: a=0x5678, b=0x1234
: 大家之前的答案,忽略掉了當你獨出來時,會依照endian的方式去讀出來,
沒錯..BE 是 a=0x1234, b=0x5678 先前看太快沒注意 sorry
: : 不會造成segment fault,這題完全沒錯,會造成 segment
: : fault 是編譯器太爛或是字串長度已達10再執行一次 strappend 時
: segment跟compiler一點都沒關係...
最前篇指出會 segment fault 是因為他認為後面沒有加 '\0'
所以在 print 或讀取時可能造成 segment fault
我上篇說沒有錯是因為 char str[10] 中不夠分派到指定字元的值會設定 0,
所以不用補 0。而提到 compiler 太差是指若它沒有依照 ANSI C 標準
(如個人應付作業所寫的編譯器..:) 後面 6 個字元設定 0 或僅設定 1 個,
那麼 strappend 之後再讀取時便有可能發生 segment。
另外,實際除錯時最好還是不要太堅持「segment跟compiler一點都沒關係」
直接關係的機會可能很渺小,不過間接的 side effect 倒不容忽視。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.68.185.154