1. 程式人生 > >C++ memset()函式及其作用

C++ memset()函式及其作用

1、memset函式說明

  memset()的函式, 它可以一位元組一位元組地把整個陣列設定為一個指定的值。它把陣列的起始地址作為其第一個引數,第二個引數是設定陣列每個位元組的值,第三個引數是陣列的長度(位元組數,不是元素個數)。memcpy用來做記憶體拷貝,你可以拿它拷貝任何資料型別的物件,可以指定拷貝的資料長度。

#include <string.h>
// 將s中的前n個位元組用ch替換並且返回s,
void *memset(void *s,int ch,size_t n)

2、清空陣列和初始化

memset(buffer, 0, sizeof(buffer)) // 這個函式在socket很常用。
char a[100]; memset(a, '/0', sizeof(a)); // 初始化陣列。

3、清空一個結構體

// 在一段記憶體塊中填充某一個給定的值,常用於較大的對結構體和陣列的清零操作。
struct sample_struct
{
	char csName[16];
	int iSeq;
	int iType;
};
memset(&stTest, 0, sizeof(struct sample_struct));

// 如果是陣列:
struct sample_struct TEST[10];
memset(TEST, 0, sizeof(struct sample_struct)*
10);