C语言 函数memset
时间: 2025-01-19 17:55:17 浏览: 52
### C语言 `memset` 函数使用说明
#### 函数原型
`memset` 是 C 语言标准库中的一个函数,用于将指定的内存块设置为某个特定值。其函数原型如下:
```c
void *memset(void *ptr, int value, size_t num);
```
参数解释:
- `ptr`: 指向要填充的内存区域的指针。
- `value`: 要被写入到该内存区域的值。注意这个值会被转换成无符号字符(即只取低8位)。
- `num`: 需要被设置的字节数。
返回值:指向已处理字符串的指针[^3]。
#### 初始化数组或结构体
可以利用 `memset` 来快速初始化整个数组或结构体的内容至零或其他常量值。对于数值型数据成员来说,这通常意味着将其置零;而对于字符类型,则可能是填满相同的字符[^4]。
#### 示例代码
下面是一个简单的例子展示如何使用 `memset` 对整数数组进行初始化操作:
```c
#include <stdio.h>
#include <string.h> // 包含 memset 定义所在的头文件
int main(){
int array[5];
// 将array中所有元素设为0
memset(array, 0, sizeof(array));
printf("After setting all elements to zero:\n");
for(int i=0;i<5;i++){
printf("%d ", array[i]);
}
}
```
这段程序会输出五个连续的零,因为已经通过调用 `memset` 把每一个位置都赋给了零值[^1]。
另一个常见的应用场景是对自定义的数据结构做同样的事情:
```c
typedef struct {
char name[20];
float score;
} Student;
Student studentRecord;
// 清除studentRecord里的所有字段
memset(&studentRecord, '\0', sizeof(Student));
strcpy(studentRecord.name,"John Doe");
studentRecord.score = 95.7f;
```
这里先用了 `memset` 设置了一个学生记录为空白状态,再对其属性进行了正常赋值[^2]。
阅读全文
相关推荐



















