在c++ 语言中,memset函数是一个非常重要的初始化函数,他可以将指针所指向的一大块连续内存设置成一个指定的数值,非常方便实用。那么,下面,小编将教大家如何使用memset进行初始化变量

工具/原料

  • codebloks
  • c++11编译器

方法/步骤

  1. 1

    该函数语法:

    void * memset ( void * ptr, int value, size_t num );

    ptr指的是指向内存块的指针。value指的是内存块被设定的数值的大小。size_t num指的是内存块的大小。

  2. 2

    头文件引用:

    如果想要使用该函数必须要引用头文件:#inlcude<string.h>

  3. 3

    数组的初始化:

    对于数组a[]的初始化:memset(a,0,size)。表示把数组a中的所有元素设置成0.

    #include<string.h>

    #include<iostream>

    using namespace std;

    int main()

    {

       int a[]={1,2,3};

       int n=sizeof(a)/sizeof(int);

       //initial the array

       memset(a,0,sizeof(a));

       //print the array

       for(int i=0;i<n;i++)

          cout<<a[i]<<" ";

    }

  4. 4

    将上述使用memset初始化数组之后的数组打印出来的结果为:

    0,0,0

    符合预期

  5. 5

    注意:

    对数组a[]进行初始化时,表达式memset(a,0,size)中的size指的是数组所占内存的大小,而不是数组中元素的个数。

    下面这个是错误的示例:

    #include<string.h>

    #include<iostream>

    using namespace std;

    int main()

    {

       int   a[]={1,2,3,4} ;

       int n=sizeof(a)/sizeof(int );

       //initial the array

       memset(a,0,n);

       //print the array

       for(int i=0;i<n;i++)

          cout<<a[i]<<" ";

    }

  6. 6

    错误示例的输出:

    0,2,3,4

    它并没有将所有的项都初始化,只对第一个数进行了初始化。应为int类型所分配的空间是4字节。

    END

注意事项

  • 如果对您有帮助请点个赞吧
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。