C 标准库 - <string.h>

C 语言 memset() 函数用于将指定内存块的前 n 个字节都填充为指定的值,常用于数组清零或初始化。

原型

void *memset(void *str, int c, size_t n);

参数

  • str - 要填充的内存指针;
  • c - 要填充的值(int,实际按 unsigned char 处理);
  • n - 要填充的字节数。

返回值

返回 str 的指针。

示例

#include <stdio.h>
#include <string.h>

int main()
{
    char buf[10];
    memset(buf, 0, sizeof(buf));  // 清零

    int arr[5];
    memset(arr, 0, sizeof(arr));  // 整型数组清零

    printf("数组已清零\n");
    return 0;
}

输出:

数组已清零

注意事项

给 int 等非 char 类型数组清零是安全的;但用 memset 填充非 0 值到 int 数组会得到奇怪的结果,应改用循环。