[問題][C語言] pointer的問題

看板Programming作者 (Jamie)時間16年前 (2009/06/11 10:55), 編輯推噓3(308)
留言11則, 5人參與, 最新討論串1/2 (看更多)
請問以下程式的問題是那邊呢? 1. #include <stdio.h> void main(void) { char *pt; *pt = 'a'; getchar(); } 用了Devcpp 跟visual studio express 2008 compile都會過 不過run的時候就crash了 後來改成 2. Char *pt,ch; ch = 'a'; pt = &a; getchar(); 這樣才可以 想請教一下為何不能像1這樣使用呢? 因為手邊有兩本c的書(蠻老的)裡面都有1這樣的例子, eg: int *pt = 0; 不過我run這個也是會crash 一開始我以為是電腦有問題,後來試了其他兩台也一樣 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.186.96

06/11 11:03, , 1F
因為1.沒有記憶體空間
06/11 11:03, 1F

06/11 11:06, , 2F
不過我手邊有本Turbo c裡面直接這樣寫耶..
06/11 11:06, 2F

06/11 11:07, , 3F
還有一本IBM 的c也是這樣教
06/11 11:07, 3F

06/11 11:28, , 4F
拿去回收吧,資源要有效利用..
06/11 11:28, 4F

06/11 14:07, , 5F
因為常數並沒有左值(L-Value)
06/11 14:07, 5F

06/11 14:49, , 6F
pt 指向一個隨機記憶體空間
06/11 14:49, 6F

06/11 14:49, , 7F
寫入時會產生不合法的記憶體存取
06/11 14:49, 7F

06/11 14:49, , 8F
在 Linux 上會看到 Segmentation Fault
06/11 14:49, 8F

06/11 14:49, , 9F
Windows 上就會問你要不要回報了...
06/11 14:49, 9F

06/11 19:38, , 10F
好吧..回收
06/11 19:38, 10F

06/11 19:38, , 11F
後來朋友說要用malloc先要空間才能用 :p
06/11 19:38, 11F
文章代碼(AID): #1AC78z47 (Programming)
文章代碼(AID): #1AC78z47 (Programming)