作者zerodevil (冰心無情)
看板Programming
標題Re: [問題] 請問C語言中指標宣告與字串
時間Fri Aug 22 15:22:12 2008
※ 引述《CCChieh (敲口愛)》之銘言:
: int *a=123;
: char *a='c';
: 編譯時發生錯誤,可以理解成系統並沒有配置記憶體空間給pointer
: 故pointer指向之記憶體位置並無法存放變數,而發生address access violation
全錯
編譯期沒有memory access, 更不會出現address access violation
compile error單純只是因為型別不合
: 又見
: char *a="qwe12312";
: 是個常見可行的寫法
compile會過是會過啦..不過最好加個const比較好
: 但試問各位板友,編譯器如何去解釋這段指令
: 記憶體是如何的配置?與上例相比兩者差異為何呢?
就compiler的角度來看應該差不多..
: 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.184.176
※ 編輯: zerodevil 來自: 118.169.184.176 (08/22 15:23)
推 ms6163:不用加就是const了吧 97.118.149.239 08/22 17:08
→ CCChieh:1.型別不合,但執行會出現上述問題 218.174.134.87 08/22 18:38
→ CCChieh:2卻完全正確, 為何? 218.174.134.87 08/22 18:38
→ CCChieh:上述問題指address access violation 218.174.134.87 08/22 18:45
推 sunneo:其實我不曉得你的1跟2是什麼 61.227.229.38 08/22 18:59
→ sunneo:int* && char* 那部份的確只能說型別不合 61.227.229.38 08/22 20:40
推 ji3g45j:nono~要給const才會放在.text區段 124.8.86.231 08/24 00:02
推 sunneo:是嗎= _=? "xxxabc"這串字串本身就是const 61.227.226.2 08/24 02:02