[問題] 在CLASS中動態配置二維陣列錯誤
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
dev c++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
iostream
問題(Question):
一開始不會配置未知長度*已知長度的陣列,所以另外開一個原始碼來測試,
好不容易測試成功,要丟回CLASS用的時候就爆炸了。
餵入的資料(Input):
無
預期的正確結果(Expected Output):
編譯成功
錯誤結果(Wrong Output):
non-static data member initializers only available with -std=c++11 or
-std=gnu++11
程式碼(Code):(請善用置底文網頁, 記得排版)
首先是自己測試成功的版本,建立一個二維陣列來儲存輸入的字。
#include<iostream>
using namespace std;
int main()
{
int i;
char (*ab)[20] = new char [i][20];
for (i = 0; cin.getline(ab[i],20); i++)
{
for (int j = 0; j < 20; j++)
cout << ab[i][j];
cout << endl;
}
delete [] ab;
return 0;
}
然後是丟回CLASS爆炸的版本。
#include<iostream>
using namespace std;
static const int MAXEVAL = 20;
static int i;
class test
{
private:
char (*emessage)[MAXEVAL] = new char [i][MAXEVAL];
}
補充說明(Supplement):
我剛學c++不久,很多基本常識都不太懂,有嘗試google過錯誤原因,
但是感覺都沒回答到我的問題,不知是否在class無法這樣配置二維陣列,
還是有別種寫法可以取代?
程式主要的功能是能夠一次輸入一列文字,儲存在陣列後以另外的指令一次顯示出來,
並且可隨時增加輸入,因此需要動態配置。由於編譯時就發生錯誤,所以其他程式碼
就沒另外打出來了。
有請版上高手指導,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.100.166
※ 編輯: poi1111 來自: 114.37.100.166 (04/18 04:49)
推
04/18 06:41, , 1F
04/18 06:41, 1F
推
04/18 09:08, , 2F
04/18 09:08, 2F
推
04/19 04:39, , 3F
04/19 04:39, 3F
→
04/19 11:57, , 4F
04/19 11:57, 4F