先看看帮助文档上的介绍以及实例:
Sets buffers to a specified character.
void *memset( void* dest, int c, size_t count );
Parameters
-
dest
- Pointer to destination. 目标指针 c
- Character to set. ascii 字符 count
- Number of characters. 字节数
Example
/* MEMSET.C: This program uses memset to
* set the first four characters of buffer to "*".
*/
#include <memory.h>
#include <stdio.h>
void main( void )
{
char buffer[] = "This is a test of the memset function";
printf( "Before: %s\n", buffer );
memset( buffer, '*', 4 );
printf( "After: %s\n", buffer );
}
Output
Before: This is a test of the memset function After: **** is a test of the memset function
在上面的例子中,字符数组buffer 的前四个字符被替换为‘*’,可见memset函数的做表面作用就是字符替换。
有一个比较好的功能描述:将指定的内存块中的每个字节的内容设置成指定的ACSII字符
memset 最常见的功能就是为新申请的内存做初始化,
比如在C++中:
char buff[100];
memset(buff,0,sizeof(buff));
或者 memset(buff,'/0',100)
或者 memset(buff,' ',sizeof(char)*100)
操作结构也是一样的
structsample_struct
{
char csName[16];
int iSeq;
int iType;
} ;
对于变量
struct sample_strcut stTest
用memset就非常方便:
memset(&stTest,0,sizeof(struct sample_struct));
如果是数组:
struct sample_struct TEST[10];
则
memset(TEST,0,sizeof(struct sample_struct)*10);
本文详细介绍了memset函数的功能与使用方法,包括参数说明、示例代码及输出结果。通过实例展示了如何利用memset进行字符替换和内存初始化。


被折叠的 条评论
为什么被折叠?



