欢迎您 本站地址:  

C 库函数 - memset()

C 标准库 - <string.h> C 标准库 - <string.h>

描述

C 库函数 void *memset(void *str, int c, size_t n) 用于将一段内存区域设置为指定的值。

memset() 函数将指定的值 c 复制到 str 所指向的内存区域的前 n 个字节中,这可以用于将内存块清零或设置为特定值。

在一些情况下,需要快速初始化大块内存为零或者特定值,memset() 可以提供高效的实现。

在清空内存区域或者为内存区域赋值时,memset() 是一个常用的工具函数。

声明

void *memset(void *ptr, int value, size_t num);

下面是 memset() 函数的声明。

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

参数

返回值

该值返回一个指向存储区 str 的指针。

注意事项

实例

下面的实例演示了 memset() 函数的用法。

实例

#include <stdio.h> #include <string.h> int main () { char str[50]; strcpy(str,"This is string.h library function"); puts(str); memset(str,'$',7); puts(str); return(0); }

让我们编译并运行上面的程序,这将产生以下结果:

This is string.h library function
$$$$$$$ string.h library function

实例

#include <stdio.h>
#include <string.h> // 引入 string.h 头文件以使用 memset

int main() {
    char buffer[10];

    // 将 buffer 数组的前5个字节设置为字符 'A',并添加字符串终止符
    memset(buffer, 'A', 5);
    buffer[5] = '\0'; // 确保添加字符串终止符
    printf("Buffer after memset: %s\n", buffer);

    // 将 buffer 数组清零,使用 '\0' 替代 0
    memset(buffer, '\0', sizeof(buffer)); // 使用'\0'确保一致性及可读性
    printf("Buffer after memset: %s\n", buffer);

    return 0;
}

让我们编译并运行上面的程序,这将产生以下结果:

Buffer after memset: AAAAA
Buffer after memset: 

C 标准库 - <string.h> C 标准库 - <string.h>

小库提示

扫描下方二维码,访问手机版。