C语言memset()函数:将内存的前n个字节设置为特定的值
头文件:
1
|
#include <string.h>
|
memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为:
1
|
void
*
memset
(
void
* ptr,
int
value,
size_t
num );
|
参数说明:
ptr 为要操作的内存的指针。
value 为要设置的值。你既可以向 value 传递 int 类型的值,也可以传递 char 类型的值,int 和 char 可以根据 ASCII 码相互转换。
num 为 ptr 的前 num 个字节,size_t 就是unsigned int。
【函数说明】memset() 会将 ptr 所指的内存区域的前 num 个字节的值都设置为 value,然后返回指向 ptr 的指针。
memset() 可以将一段内存空间全部设置为特定的值,所以经常用来初始化字符数组。例如:
1
2
|
char
str[20];
memset
(str,
'\0'
,
sizeof
(str)-1);
|
【返回值】返回指向 ptr 的指针。
注意:参数 value 虽声明为 int,但必须是 unsigned char,所以范围在0 到255 之间。
范例:
复制纯文本新窗口
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main()
{
// 不可以声明为 char *str = "http://c.biancheng.net";
memset
(str,
'-'
, 7);
puts
(str);
system
(
"pause"
);
return
EXIT_SUCCESS;
}
|
执行结果:
1
|
-------c.biancheng.net
|