看板 Programming 關於我們 聯絡資訊
※ 引述《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