當數組大小是一個變量時,如何初始化數組的所有值爲零值?如何在C++中初始化變量大小的整數數組爲0?
int n;
cin >> n;
int a[n] = {0};
我試過上面的代碼,但它給出了一個錯誤。
當數組大小是一個變量時,如何初始化數組的所有值爲零值?如何在C++中初始化變量大小的整數數組爲0?
int n;
cin >> n;
int a[n] = {0};
我試過上面的代碼,但它給出了一個錯誤。
變長數組不是有效的C++,儘管一些編譯器確實將它們實現爲擴展。
C++中不允許使用變量大小的數組。可變大小意味着在程序運行時可以改變大小。上面的代碼試圖讓用戶在運行時確定大小。
所以代碼不會編譯。
兩種選擇:
1. Use Vectors
Example:
vector<int> a(n,0);
2. Create variable arrays using dynamic memory allocation.
int*a;
int n;
cin >> n;
a = new int[n];
for(int i = 0; i<n;i++)
*(a+i) = 0;
delete [] a;
// Input n
int n;
cin>>n;
// Declare a pointer
int * a;
// Allocate memory block
a = new int[n];
/* Do stuff */
// Deallocate memory
delete[] a;
更多信息請參見this tutorial。
如果'n'不是'constexpr',這將無法編譯,但這是如何將數組的元素初始化爲零。 – 101010 2014-09-04 14:08:50
請分享錯誤,以便我們幫助你。 – Mike 2014-09-04 14:10:02
'std :: vector a(n);' –
2014-09-04 14:11:28