作者Neisseria (Neisseria)
看板C_and_CPP
標題Re: [問題] VS編譯相關
時間Wed Mar 9 10:08:36 2016
※ 引述《ericrobin ()》之銘言:
: 首先是 array 的設定, 我希望能依照餵入的值來決定大小:
: int n, m;
: scanf("%d\n", &n);
: scanf("%d\n", &m);
: int p = m * m;
: int a[n][m][m];
: int b[p];
: int result[n];
: VC++ 在後三式會顯示錯誤 "運算式必須要有常數值"
: 想請問要做到我需求的話該如何寫才好?
可能是 scanf 那裡出了問題,把 "\n" 拿掉再跑跑看
試了一下,可參考跑得動的例子
https://pastebin.com/5dapQUE4
$ g++ -o array_size array_size.cpp -std=c++14
$ ./array_size
Input n: 3
55 69 23 # numbers are randomly assigned
不過我記得 array 的長度不能用變數,但是跟這裡範例不符
再請各位大大講一下是怎麼回事好了
: 這幾天研究g++好久還是不知道怎用 走投無路才裝了龐大的VS..結果還是沒很順囧
g++ 應該沒那麼難用才是
雖然參數很多,但基本的編譯步驟很簡單的
可能還是要看一下實際的錯誤訊息才知道是怎麼回事
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.71.94.1
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1457489319.A.579.html
→ crazycy: C++標準是說不行 可是G++有支援 03/09 10:19
→ ericrobin: 謝謝 scanf那邊確實多了\n 03/09 10:35
→ ericrobin: 將array 修改成常數也順利能跑出來 03/09 10:41
推 ericrobin: 不過另一個問題是我設定到 int a[10][180][180] 03/09 10:44
→ ericrobin: 這樣的大小 exe馬上就會說停止運作 03/09 10:45
→ ericrobin: 很納悶它上限有那麼低嗎.... 03/09 10:46
→ petercoin: 這個大小要用malloc配置記憶體 03/09 11:23
→ ericrobin: 照樓上方法做問題就解決了XD 03/09 12:02
→ petercoin: 我記得是stack size的限制啦 03/09 13:42