我知道如何使用memset将数组的内容设置为特定值。现在,我对在给定范围内做同样事情的事情感兴趣。
scanf("%d %d",&a,&b);
//set the content from A[a] to A[b] as '0' without looping
我不想通过循环。请告诉我们是否有其他有效的方法来实现这一目标。
答案 0 :(得分:0)
使用memset分配值仅适用于2个值:0和-1 ,
休息只会给垃圾值
还是,让我来帮助您在范围内使用memset。
我在下面用一个例子解释您的查询:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[10]; // Array of 10 elements with val of 0;
memset(a,0,sizeof(a));
// Sets all array elements to 0
memset(a+2,-1,sizeof(int)*5);
// Sets value of array elements from 2 to 6 index equals to -1
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
输出: 0 0 -1 -1 -1 -1 -1 -1 0 0 0
*我在发布之前已经检查了各种IDE上的代码。
希望它会有所帮助!