本來的C語言(C99之前)是不能用變數來宣告陣列長度的 例如:
int i[length];
後來C99標準中允許了這樣的宣告方式 但是C++並沒有這樣的標準
C++的動態陣列還是使用vector比較好
http://www.clarkcox.com/blog/?p=74#footnote_0_74
這裡有一篇文章寫到VLA的壞處 當stack pointer指到不正確的地方時 程式會發生什麼事沒人知道
這的確是直得思考的地方
另外 要將多維陣列傳給函式當參數時 除了第一維的維度可以不給之外 其餘都要給
例如 int func(int array[][4]); 這樣的寫法
沒有留言:
張貼留言