Re: [問題] VS編譯相關

作者: Neisseria (Neisseria)   2016-03-09 10:08:36
※ 引述《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++ 應該沒那麼難用才是
雖然參數很多,但基本的編譯步驟很簡單的
可能還是要看一下實際的錯誤訊息才知道是怎麼回事
作者: crazycy (LCY)   2016-03-09 10:19:00
C++標準是說不行 可是G++有支援
作者: ericrobin   2016-03-09 10:35:00
謝謝 scanf那邊確實多了\n將array 修改成常數也順利能跑出來不過另一個問題是我設定到 int a[10][180][180]這樣的大小 exe馬上就會說停止運作很納悶它上限有那麼低嗎....
作者: petercoin (彼得幣)   2016-03-09 11:23:00
這個大小要用malloc配置記憶體
作者: ericrobin   2016-03-09 12:02:00
照樓上方法做問題就解決了XDhttp://jax-work-archive.blogspot.tw/2009/04/c.html
作者: petercoin (彼得幣)   2016-03-09 13:42:00
我記得是stack size的限制啦

Links booklink

Contact Us: admin [ a t ] ucptt.com