29 - memset()函数

1 函数原型

memset():填充内存块,函数原型如下:

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

cstring库描述如下:

Fill block of memory
1. Sets the first num bytes of the block of memory pointed by ptr to the specified value (interpreted as an unsigned char).
  1. memset()函数:
    (1)将指针ptr所指向的内存块的前num个字节设置为指定的值value;
  2. 注意事项
    (1)memset()函数并不检查内存块的内容或边界,它简单地根据提供的字节数和值来覆盖内存;必须确保内存块有足够的空间来存储num个字节的数据。

2 参数

memset()函数由三个参数ptr、value和num:

  1. 参数ptr是指向要填充的内存块的指针,类型为void*;
  2. 参数value是要设置的值,类型为int;尽管value是 int 类型,但是实际只取value的低8位(模256),将value由int型转换为unsigned char型;
  3. 参数num是要设置的字节数,类型为size_t。

cstring库描述如下:

ptr
1. Pointer to the block of memory to fill.

value
1. Value to be set. The value is passed as an int, but the function fills the block of memory using the unsigned char conversion of this value.

num
1. Number of bytes to be set to the value.
2. size_t is an unsigned integral type.

3 返回值

memset()函数的返回值类型为void*型:

  1. 返回指向要填充的内存块的指针ptr。

cstring库描述如下:

1. ptr is returned.

4 示例

4.1 示例1

示例代码如下所示:

int main() {
   //
   int numbers[6] = { 0 };
   //
   memset(numbers, 0x12, sizeof(numbers));
   //
   for (int i = 0; i < 6; i++) {
      printf("%#x\n", numbers[i]);
   }
   //
   return 0;
}

代码运行结果如下图所示:

在这里插入图片描述

4.2 示例2

示例代码如下所示:

int main()
{
   //
   char arr_s[10] = "aaaaaaaaa";
   //
   printf("设置前:%s\n", arr_s);
   //
   memset(arr_s, 'b', 5);
   //
   printf("设置后:%s\n", arr_s);
   //
   return 0;
}

代码运行结果如下图所示:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值