memset() 函数将指定内存块填充为给定值,参数包括指向内存块的指针 ptr、要填充的字符 ch 以及要填充的字节数 num。其工作原理是使用 rep stosb 指令高效地将 num 个字节都填充为 ch 值。
memset() 函数原型
memset() 函数用于将某个内存块的指定部分填充为某个给定值。它的函数原型如下:
void *memset(void *ptr, int ch, size_t num);
参数说明:
- ptr:指向要填充的内存块的指针。
- ch:要填充的字符或字节值。
- num:要填充的字节数。
返回值:
函数返回指向被填充的内存块的首地址。
工作原理:
memset() 函数将 ptr 指向的内存块中连续的 num 个字节都填充为 ch 值。它通过使用汇编代码中的 rep stosb 指令来快速高效地完成此操作。
示例:
以下示例将 100 个字节的内存块填充为字符 'A':
#include <string.h>
char buffer[100];
memset(buffer, 'A', 100);</string.h>
注意事项:
- memset() 函数不会检查 ptr 指向的内存块是否有效,因此在使用前应确保它指向有效的内存。
- memset() 函数不改变 ptr 的值,它返回的是填充后的内存块的首地址。
- memset() 函数是 C 标准库的一部分,需要包含
头文件才能使用。