看板 Programming 關於我們 聯絡資訊
請問以下程式的問題是那邊呢? 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
mryf:因為1.沒有記憶體空間 140.112.30.46 06/11 11:03
hansi:不過我手邊有本Turbo c裡面直接這樣寫耶.. 124.11.186.96 06/11 11:06
hansi:還有一本IBM 的c也是這樣教 124.11.186.96 06/11 11:07
godfat:拿去回收吧,資源要有效利用.. 220.128.121.87 06/11 11:28
horngsh:因為常數並沒有左值(L-Value) 125.224.12.211 06/11 14:07
freesamael:pt 指向一個隨機記憶體空間 140.124.182.91 06/11 14:49
freesamael:寫入時會產生不合法的記憶體存取 140.124.182.91 06/11 14:49
freesamael:在 Linux 上會看到 Segmentation Fault 140.124.182.91 06/11 14:49
freesamael:Windows 上就會問你要不要回報了... 140.124.182.91 06/11 14:49
hansi:好吧..回收 124.11.190.20 06/11 19:38
hansi:後來朋友說要用malloc先要空間才能用 :p 124.11.190.20 06/11 19:38