数组中给定范围的memset

时间:2015-01-05 16:20:08

标签: memset

我知道如何使用memset将数组的内容设置为特定值。现在,我对在给定范围内做同样事情的事情感兴趣。

scanf("%d %d",&a,&b);
//set the content from A[a] to A[b] as '0' without looping

我不想通过循环。请告诉我们是否有其他有效的方法来实现这一目标。

1 个答案:

答案 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上的代码。

希望它会有所帮助!