[問題] 陣列長度的決定

看板C_and_CPP作者 (Firedupandreadytoserve )時間12年前 (2013/05/13 13:57), 編輯推噓2(2022)
留言24則, 14人參與, 最新討論串1/1
我補上我的全部程式 http://codepad.org/l647UDbI http://ppt.cc/iXL8 這個是我參考的網址 裡面說到"陣列長度必須事先決定,所以您不可以使用變數來事後決定陣列的長度" 可是比方說我寫一段程式: int plength; /* plength表示密碼的長度*/ printf("length=?\n"); /*印出length=? */ scanf("%d",&plength); /*抓我的輸入當作密碼長度*/ int realpassword[plength]; /*正確密碼是這個陣列 長度是我的輸入*/ 這樣 compiler不會有錯誤 執行起來也是正確的... 可是我用了會變動的陣列 是我運氣好pass了嗎? ps. 抱歉沒有用預定的格式po...因為不是很完整的問題... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.102.122

05/13 13:59, , 1F
那是因為 compiler 支援 VLA
05/13 13:59, 1F

05/13 14:01, , 2F
C 可以,C++ 不行
05/13 14:01, 2F
※ 編輯: NitroRider 來自: 61.64.102.122 (05/13 14:01)

05/13 14:03, , 3F
喔喔 所以是說C的限制比較少的意思嗎
05/13 14:03, 3F

05/13 16:38, , 4F
c++ 有 std::vector 可以達成這個目的
05/13 16:38, 4F

05/13 20:13, , 5F
我不會C++耶@@
05/13 20:13, 5F

05/13 20:41, , 6F
C++可以吧=口=
05/13 20:41, 6F

05/13 21:02, , 7F
VLA不在C++標準中 那是compiler extension
05/13 21:02, 7F

05/13 22:03, , 8F
這解釋起來又是一長串故事...
05/13 22:03, 8F

05/13 22:07, , 9F
搜尋VLA 板上相關的文章也不多@@
05/13 22:07, 9F

05/13 22:10, , 10F
先找google,看完再來這邊說你的心得, 這似乎不錯XD
05/13 22:10, 10F

05/13 23:07, , 11F
Nitro,你用 VLA site:ptt.cc/bbs/C_AND_CPP 搜就很多了
05/13 23:07, 11F

05/13 23:07, , 12F
會覺得不多是因為大部份的人都不知道這叫 VLA...
05/13 23:07, 12F

05/13 23:58, , 13F
ok的 反正我沒機會鑽到那麼深...=.=
05/13 23:58, 13F

05/13 23:59, , 14F
我只是新手@@ 會用陣列就已經滿足了=.=
05/13 23:59, 14F

05/14 00:45, , 15F
C++ 也快要進了 xD http://ppt.cc/buwj
05/14 00:45, 15F

05/14 08:46, , 16F
對了 如果真的不能用VLA 那應該要怎麼寫@@?
05/14 08:46, 16F

05/14 08:49, , 17F
malloc() + free() 或者直接開一個夠大的陣列
05/14 08:49, 17F

05/14 10:01, , 18F
C++14 努力中XD
05/14 10:01, 18F

05/14 11:38, , 19F
自己實作VLA !
05/14 11:38, 19F

05/14 11:59, , 20F
不能用vla,要方便就用vector
05/14 11:59, 20F

05/14 12:00, , 21F
vector是在C++才有嗎@@? 我是寫C...
05/14 12:00, 21F

05/14 12:01, , 22F
05/14 12:01, 22F

05/14 23:29, , 23F
c基本上就malloc/realloc/free這幾個搞懂就對了
05/14 23:29, 23F

05/19 09:52, , 24F
C99可以
05/19 09:52, 24F
文章代碼(AID): #1Ha82tEd (C_and_CPP)