在c++语言中,memset函数是一个非常重要的初始化函数,他可以将指针所指向的一大块连续内存设置成一个指定的数值,非常方便实用。那么,下面,小编将教大家如何使用memset进行初始化变量
工具/原料
codebloks
c++11编译器
方法/步骤
1、该函数语法:void*memset(void*ptr,intvalue,size_tnum);ptr指的是指向内存块的指针。value指的是内存块被设定的数值的大小。size_tnum指的是内存块的大小。
2、头文件引用:如果想要使用该函数必须要引用头文件:#inlcude<string.h>
3、数盲褓梆尺组的初始化:对于数组a[]的初始化:memset(a,0,size)。表示把数组a中的所有元素设置成0.垆杪屑丝#include<string.h>#include<iostream>usingnamespacestd;intmain(){inta[]={1,2,3};intn=sizeof(a)/sizeof(int);//initialthearraymemset(a,0,sizeof(a));//printthearrayfor(inti=0;i<n;i++)cout<<a[i]<<"";}
4、将上述使用memset初始化数组之后的数组打印出来的结果为:0,0,0符合预期
5、注意:对数组a[]进行初始化时,表达式memset(a,0,size)中的size依宏氽墓指的是数组所占内存的大小,而不块吧吨翘是数组中元素的个数。下面这个是错误的示例:#include<string.h>#include<iostream>usingnamespacestd;intmain(){inta[]={1,2,3,4};intn=sizeof(a)/sizeof(int);//initialthearraymemset(a,0,n);//printthearrayfor(inti=0;i<n;i++)cout<<a[i]<<"";}
6、错误示例的输出:0,2,3,4它并没有将所有的项都初始化,只对第一个数进行了初始化。应为int类型所分配的空间是4字节。