什么是memset()函数?
memset()函数原型是 extern void* memset(void *buffer, int length, int buf)
buffer 是指针或者数组,void是要初始化的首内存的首地址;length是要初始化的变为的数据,buf是buffer的长度,即大小。
网络编程中memset函数多用于socket套接字编程中清空数组,如:
memset(IPNumber, 0, 4) ; //将IPNumber数组中的4位置为0
该函数用于将一段内存空间全部设置为某个字符,一般设置为‘ ’或者 ‘/0’
char length[100];
memset(length,’/0’,sizeof(length));
memset()函数可以很方便地清空一个数组或结构体类型
数组类型:
struct test_struct arr[10];
memset(arr,0,sizeof(struct test_struct)*10); //是乘以十
结构体类型:
struct test_struct
{
char m_Name[16];
int m_Seq;
int m_Type;
};
对于变量:struct test_srtuct stTest
一般情况下,清空stTest的方法:
stTest.m_Name[0]=‘0’;
stTest.m_Seq=0;
stTest.m_Type=0;
而使用用memset()函数方法:
memset(&stTest,0,sizeof(struct(struct test_struct));
什么时候可以使用memset()函数?
如果马上就要覆盖的地址,便不用初始化。其他的有些就需要初始化了,否则会出现一些野值