Re: [問題] 請問語法問題

看板C_and_CPP (C/C++)作者 (「雄辯是銀,沉默是金」)時間3年前 (2021/03/12 13:17), 編輯推噓1(100)
留言1則, 1人參與, 3年前最新討論串2/2 (看更多)
※ 引述《pilipalabon (...)》之銘言: : 我使用Keil C編譯器, 請教一個語法問題 : char *name = "stream_server"; : 這樣子會讓string寫到不明位置造成危險嗎? 用 const char *name 會比較好一點。 這樣的寫法, 編譯器是這樣安排的。 假設 stream_server 被編譯器安排到 0x100 的位址 0x100 0x101 0x102 s t s .... 然後 name 這個指標的值就會是 0x100 只要編譯器安排的位址沒有錯誤, 就不會有問題。 一般 stream_server 會被安排在 read only 的記憶體區域, 所以宣告會用 const char* 所以和字串的長短完全沒有關係。 char name[] 就不是這樣安排了。 : 但我宣告為 char name[]; : compiler卻又告訴我 incomplete type is not allowed : 我一定要宣告為 char name[10]; : 才能夠成功 0 Error. : 但由於我的所帶入的字串並非都是等長, 不知道該怎樣做才好? : thanks! -- 紙上得來終覺淺,絕知此事要躬行。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.218.53.138 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1615526251.A.448.html

03/12 13:22, 3年前 , 1F
了解,所以這種狀況要宣告成 const才安全! thanks
03/12 13:22, 1F
文章代碼(AID): #1WIlbhH8 (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1WIlbhH8 (C_and_CPP)