在c++ 语言中,memset函数是一个非常重要的初始化函数,他可以将指针所指向的一大块连续内存设置成一个指定的数值,非常方便实用。那么,下面,小编将教大家如何使用memset进行初始化变量
工具/原料
- codebloks
- c++11编译器
方法/步骤
- 1
该函数语法:
void * memset ( void * ptr, int value, size_t num );
ptr指的是指向内存块的指针。value指的是内存块被设定的数值的大小。size_t num指的是内存块的大小。
- 2
头文件引用:
如果想要使用该函数必须要引用头文件:#inlcude<string.h>
- 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
将上述使用memset初始化数组之后的数组打印出来的结果为:
0,0,0
符合预期
- 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
错误示例的输出:
0,2,3,4
它并没有将所有的项都初始化,只对第一个数进行了初始化。应为int类型所分配的空间是4字节。
END
注意事项
- 如果对您有帮助请点个赞吧