[問題] 指標陣列的處理

看板C_and_CPP (C/C++)作者 (我是帥哥! 噗嗤~)時間16年前 (2009/03/22 11:08), 編輯推噓2(2012)
留言14則, 7人參與, 最新討論串1/2 (看更多)
1. int main(int argc,char*argv[]){ 2. char *string[argc]; 3. int i; 4. for(i=0;i<argc-1;i++) 5. strcpy(string[i],argv[i+1]); 6. } 想請問各位 這段程式碼有問題嗎?? 因為我執行的時候一直出現segmentation fault -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.239.77

03/22 11:10, , 1F
置底十誡
03/22 11:10, 1F

03/22 11:11, , 2F
4、5行多唸個幾次就會有感覺了~~如果還是感覺不出來的話
03/22 11:11, 2F

03/22 11:12, , 3F
第二行就錯了啊...陣列不要用 [argc] 這樣去宣告吧
03/22 11:12, 3F

03/22 11:12, , 4F
就在strcpy前print一下string[i]和argv[i+1]的值,就會有
03/22 11:12, 4F

03/22 11:12, , 5F
那就為string配置應該要有的空間
03/22 11:12, 5F

03/22 11:22, , 6F
我不太懂耶,我自己推導的過程,我覺得不會超出我宣告範圍呀
03/22 11:22, 6F

03/22 11:27, , 7F
我嘗試錯誤的過程中,我覺得問題應該是在第五行
03/22 11:27, 7F

03/22 11:28, , 8F
對了,我用的是GNU C的library
03/22 11:28, 8F

03/22 11:32, , 9F
上面推文就講說沒配置string記憶體...QQ
03/22 11:32, 9F

03/22 11:52, , 10F
在下不才,請問配置string記憶體是什麼意思呢??
03/22 11:52, 10F

03/22 11:59, , 11F
string[i]的記憶體哪裡來?
03/22 11:59, 11F

03/22 12:03, , 12F
所以還要malloc的意思嗎?
03/22 12:03, 12F

03/22 13:07, , 13F
置底十誡就有寫了 別自己悶著頭"推導"
03/22 13:07, 13F

03/22 13:07, , 14F
觀念錯誤 想上一輩子也不會正確的
03/22 13:07, 14F
文章代碼(AID): #19nQl0aT (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19nQl0aT (C_and_CPP)