c语言memset函数实现
时间: 2023-08-10 18:31:42 浏览: 41
C语言的memset函数用于将一段内存区域的值全部设为指定的值。实现如下:
```c
void *memset(void *s, int c, size_t n) {
unsigned char *p = s;
while (n--) {
*p++ = (unsigned char)c;
}
return s;
}
```
这里使用了指针的自增运算符,每次将值赋给当前指针指向的内存,并将指针向后移动一位,直到n为0,即全部赋值完成。注意,这里将c强制转换为unsigned char类型,是为了处理c为负数的情况。
相关问题
C语言memset函数实现
C语言的memset函数用于将一段内存区域的值全部设为指定的值。实现如下:
```c
void *memset(void *s, int c, size_t n) {
unsigned char *p = s;
while (n--) {
*p++ = (unsigned char)c;
}
return s;
}
```
这里使用了指针的自增运算符,每次将值赋给当前指针指向的内存,并将指针向后移动一位,直到n为0,即全部赋值完成。注意,这里将c强制转换为unsigned char类型,是为了处理c为负数的情况。
c语言 memset函数
C语言的memset函数用于将指定的内存块设置为指定的值。它的函数原型如下:
```c
void *memset(void *s, int ch, size_t n);
```
该函数的作用是将以s内存地址为首的连续n个字节的内容置为ch。一般用来对大量结构体和数组进行清零。
以下是一个使用memset函数的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[50] = "Hello World!";
printf("Before memset: %s\n", str);
memset(str, '*', 5);
printf("After memset: %s\n", str);
return 0;
}
```
输出结果为:
```
Before memset: Hello World!
After memset: ***** World!
```
这个示例中,我们首先定义了一个字符数组str,并初始化为"Hello World!"。然后使用memset函数将str的前5个字节置为'*'。最后打印出修改后的str。