Re: [問題] 請問語法問題
看板C_and_CPP (C/C++)作者descent (「雄辯是銀,沉默是金」)時間3年前 (2021/03/12 13:17)推噓1(1推 0噓 0→)留言1則, 1人參與討論串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
03/12 13:22, 1F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章