memset 函数的解释与使用案例

`memset` 函数是 C 语言标准库中的一个实用函数,用于设置内存块的内容。它可以用来初始化数组或结构体,或者清零一段内存。下面是 `memset` 函数的一个具体使用例子:

函数原型

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

- *s*:指向要填充的内存块的指针。
- *c*:要写入的值,这个值会被转换为无符号字符。
- *n*:要填充的字节数。示例代码
案列代码1:

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

int main() {
    // 定义一个字符数组
    char str[20] = "Hello, World!";

    // 使用 memset 函数将数组的前 10 个字节设置为 'X'
    memset(str, 'X', 10);

    // 打印修改后的数组
    printf("Modified string: %s\n", str);

    return 0;
}

 代码解释:
1. 定义字符数组:

 char str[20] = "Hello, World!";

  这里定义了一个字符数组 `str`,初始内容为 `"Hello, World!"`。

2. 使用 `memset` 函数:

   memset(str, 'X', 10);

`str`:指向数组的指针。
  `'X'`:要写入的字符,会被转换为无符号字符。
   `10`:要填充的字节数。

这行代码将数组 `str` 的前 10 个字节设置为 `'X'`。由于 `str` 的总长度是 20 个字节,所以后面的 10 个字节保持不变。

3. 打印修改后的数组:

   printf("Modified string: %s\n", str);

这行代码打印修改后的数组内容。

输出结果

Modified string: XXXXXXXXXXXXld!


- 前 10 个字节被设置为 `'X'`。
- 后面的内容保持不变。

其他应用场景
- 初始化数组:

  int arr[10];
  memset(arr, 0, sizeof(arr)); // 将数组初始化为 0

- 清零内存:

  char buffer[256];
  memset(buffer, 0, sizeof(buffer)); // 清零整个缓冲区

- 设置特定值:

  struct {
      int id;
      char name[50];
  } record;

  memset(&record, 0, sizeof(record)); // 将结构体初始化为 0

`memset` 函数是一个非常灵活的工具,可以用于各种内存操作,包括初始化、清零和设置特定值。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值