1. 程式人生 > >VS2013 c++ 常量定義陣列大小報錯

VS2013 c++ 常量定義陣列大小報錯

今天有個函式需要通過傳參來確定陣列大小,於是寫了如下程式碼測試
#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來實現了功能。