Re: [問題] segmentation fault

看板C_and_CPP作者 (好人超)時間15年前 (2010/05/29 11:42), 編輯推噓4(402)
留言6則, 6人參與, 最新討論串2/4 (看更多)
「錯誤」至少可以分成兩種 一種是「執行前」就可以抓到的,一種是「執行時」才能抓到的 Compiler 只能「盡量」幫你抓出「執行前」就能發現的錯誤 struct Stock { int StockCode; char *StockName; int gain; }; int main() { FILE *read; read=fopen("input.txt","r"); vector<Stock*> Data; Stock *temp; temp=(Stock*)malloc(sizeof(Stock)); int a,b,c; for (int i=1;i<=20;i++) { fscanf(read,"%d",&temp->StockCode); fscanf(read,"%s",temp->StockName); 雖然你有配置 Stock *temp 的空間,但沒配置 temp->StockName 的空間 這個 char * 指向的空間沒有人知道是哪裡,這樣的程式一定會有問題 你的錯誤跟這樣的意思差不多: char *str; scanf("%s", str); 大家都說 C/C++ 的指標很難搞,就是因為這種錯誤,Compiler沒辦法負責 (Compiler怎麼知道你指的地方到底是不是有效的位置?) 只能由設計者自己小心了 最後,相較於 Dev-C++,我個人會比較推薦 Microsoft Visual C++ Express google 找一下就會有網址了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.171.46

05/29 11:57, , 1F
恩恩 程式沒有問題了 感謝^^
05/29 11:57, 1F

05/29 12:02, , 2F
好人超你是好人>.^
05/29 12:02, 2F

05/29 13:54, , 3F
GCC ?
05/29 13:54, 3F

05/29 17:44, , 4F
Dev-C++ 就是 Mingw port of GCC吧
05/29 17:44, 4F

05/29 18:33, , 5F
因為Dev-C++停止更新了?
05/29 18:33, 5F

05/31 13:28, , 6F
這跟IDE沒關係吧
05/31 13:28, 6F
文章代碼(AID): #1C08qohZ (C_and_CPP)
文章代碼(AID): #1C08qohZ (C_and_CPP)