精華區beta Programming 關於我們 聯絡資訊
剛剛拿 GCC 試過了, 會有 warning: Warning: address of local variable `str' returned 這已經說明了 compiler 不認為 point to constant char array 是 literal string 了。 無論後面執行結果如何,這行程式都是有問題的。 看來我得把我之前的話吞回去了 :p ※ 引述《cole945 (躂躂..)》之銘言: : > Arton0306:這裡我印出亂碼耶@@ : 我手邊是用GCC/3.4.4編譯的@_@" : 我剛剛用VC2005測了一下.. : 可能是因為VC在pop後又放了別的東西回stack : 所以資料被蓋掉了.. : 在兩個function的 str宣告前面再多宣告一個 : char tmp[500]; : 並且把最佳化關掉(或用debug執行) : 就可以看到這個結果 :X : -- : 我主要是要說明 : char array 與 指向 string-literal 的 pointer 並不相同.. : 所以舉了個例子用來蓋 char array的資料.. : 沒拿vc測過所以沒注意到這個問題.. : 請多包涵 orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.175.202