在cpp中,想象我是否写得像
int n;cin>>n;
int a[n]={0};
我期望的是,这段代码会将所有n个元素的值都转换为零,但是,这却给了我错误:
可变大小的对象可能未初始化
答案 0 :(得分:0)
对于可变数组长度,请使用
vector<int> a(n, 0);
既可以分配也可以初始化(我明确地将0表示为初始值,但这是默认值),它既允许您调整大小,也可以询问大小,并在您检查索引有效时访问它等。这是更安全和实用的方法。new int[n];
然后将其初始化为0,但是数组大小是恒定的,使用时必须自己知道大小为 n (int *) calloc(n, sizeof(int))
中允许通过 realloc 调整其大小,但是使用时仍然需要知道其大小答案 1 :(得分:-2)
#include <iostream>
#include <algorithm>
int main()
{
int n = 5;
int val = 0;
int arr[n];
std::fill_n (arr, n, val);
}
您需要类似的东西吗?