int n;
scanf("%d",&n);
int arr[n];
arr[n]={0};
我想将所有元素初始化为0。
在编译时,我在第4行的位置8出现错误“预期表达式”。
我进行了搜索,但没有找到执行此操作的方法。
memset
:memset(arr, 0, sizeof arr);
或者,您可以使用固定大小的数组(例如int arr[25] = {0};
)或动态分配的数组(例如使用零初始化的calloc
)。
arr[n]={0};
您需要(假定自动变量)
在定义上(假设n
是一个常数表达式):
int arr[n] = {0,};
或定义后
memset(arr, 0, n * sizeof(*arr));
或
for(size_t i = 0; i < n; i++) arr[i] = 0;
如果n
是一个常数表达式,并且arr
具有静态存储持续时间(是全局存储或具有静态关键字before
,则您无需执行任何操作