int (*match_buf)[2] = new int[m_iNum1][2];
上面這一行程式,
我在VC中編譯可以過.
如果拿掉等號左側的括號變成
int* match_buf[2] = new int[m_iNum1][2];
就會出錯.
我想請問一下原因是甚麼?
這是另一種動態二維矩陣的生成法嗎?
那和
int** match_buf = new int*[m_iNum1];
for(int i = 0; i < m_iNum1; i++)
match_buf[i] = new int[2];
這樣的作法於記憶體上配置會有差嗎?
我記得後一種作法應該不會有連續位置.
(match_buf[k]裡面兩個會連續,但和match_buf[k+1]不連續,
k介於0到m_iNum1)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.231.82.32
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):