作者:
ychch (GG)
2016-07-26 00:02:00宣告的字串常數所在的記憶體位址是不能被修改的~
作者:
Richun (解放左手的OO之力)
2016-07-26 00:08:00reverse的函式宣告有問題,不能用char*,會出事。這個程式反轉了一個"陣列",但是直接reverse("ABCDEFG");你測試完就知道會發生什麼事
strlen() 每呼叫一次就會計算一次陣列長度好好一個O(N)可以解決的問題被他寫成O(N^2),效能悲劇
作者:
wtchen (沒有存在感的人)
2016-07-26 00:38:00char s[] 不算字串常數吧?
作者:
Caesar08 (Caesar)
2016-07-26 01:00:00他指的是,如果用reverse("ABCDEFG")的話如果用char s[]就沒事
作者: shec1213 (旭爺) 2016-07-26 01:17:00
strlen()只有被call一次阿...
考這麼不直覺歐? 我認為是對的說在code中也沒用到字串常數我們還要腦補他會用字串常數去想歐?
應該不會是要考 int v.s size_t 吧( ゚д゚)
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2016-07-26 10:07:00但他給的 input 也不可能會爆, 要說錯也很牽強如果只給 reverse 那倒是可以說出一些問題不然真要說的話 system("pause") 也算是錯的喔還有在某些標準下 int main() 也不對
作者:
Caesar08 (Caesar)
2016-07-26 13:24:00有解答嗎?
覺得有問題都能寫吧 不一定有標準答案為啥一題只能有一種答案寫Ali 要考量一下edge cases 算蠻正常的吧
作者:
EdisonX (卡卡獸)
2016-07-28 18:21:00亂入一下,原本函式裡面用 size_t 反而問題比較大考慮到空字串的話就 gg 了
作者:
PkmX (阿貓)
2016-07-29 11:28:00reverse("ABCDEFG"); 是 caller 自己寫爛啊 把const拿掉了可以改用ssize_t或ptrdiff_t 不過前者只有在posix裡面還是改用for (char* i=p, j=p+strlen(p)-1; 這樣比較安全XD
作者:
remmurds (Stronghold)
2016-07-30 09:20:00不要再用 dev c++ 了...拜託