[問題] 用const靜態陣列作為引數宣告靜態陣列

看板C_and_CPP (C/C++)作者 (次次的)時間12年前 (2014/04/14 15:01), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
開發平台(Platform): VC++ 2012 問題(Question): 宣告靜態陣列的引數必須要用常數,我這樣做應該可以編譯 但實際上卻出現Error error C2057: 必須是常數運算式 error C2466: 無法配置常數大小為 0 的陣列,常數必須為大於 0 的整數 error C2087: 'test' : 遺漏註標 error C2133: 'test' : 未知的大小 程式碼(Code): int main() { const int a[3] = {2,3,4}; double test[a[0]][a[1]][a[2]]; return 0; } 補充說明(Supplement): 若將分成三行宣告,則編譯沒問題 const int a0 = 2; const int a1 = 3; const int a2 = 4; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.71.114 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1397458913.A.173.html

04/14 19:20, , 1F
需要新版的 constexpr 或者只好用建議不要用的 Macro / enum
04/14 19:20, 1F

04/14 19:21, , 2F
你還是用 vector 吧...
04/14 19:21, 2F

04/15 10:04, , 3F
const int a[] = { 1, 2, 3};
04/15 10:04, 3F
文章代碼(AID): #1JIuVX5p (C_and_CPP)
文章代碼(AID): #1JIuVX5p (C_and_CPP)