VS2013 c++ 常量定義陣列大小報錯
阿新 • • 發佈:2019-02-05
今天有個函式需要通過傳參來確定陣列大小,於是寫了如下程式碼測試
#include <iostream>
#include <Vector>
using namespace std;
void func(const vector<int> &a)
{
const int c =a.size();
float b[c];
cout<<__func__<<" "<<c<<endl;
}
int main()
{
vector<int> p;
p.push_back(10);
func(p);
return 0;
}
用Cygwin g++ test.cpp -static-libgcc -static-libstdc++ 編譯,沒問題一切正常可以輸出,把程式碼放到vs上報錯
error C2057: 應輸入常量表達式
error C2466: 不能分配常量大小為 0 的陣列
error C2133: “b”: 未知的大小
百度說是c標準的問題,我也沒有具體去研究,這裡記錄一下
最後我通過new來實現了功能。